С# Ошибка создания каталога в SpecialFolder.LocalApplicationData в Windows 7 от имени администратора

Я получаю сообщение об ошибке «Отказано в доступе к пути LocalApplicationData\MyProgram\». при попытке создать каталог для моего файла журнала. Это когда я запускаю программу как пользователь без прав администратора.

Directory.CreateDirectory(System.Environment.SpecialFolder.LocalApplicationData + "\\MyProgram\\");

С чего бы это?

Спасибо


person Jade M    schedule 02.01.2010    source источник


Ответы (2)


LocalApplicationData - это просто значение перечисления. Вам придется использовать его в сочетании с GetFolderPath:

string folder = Path.Combine(Environment.GetFolderPath(
    Environment.SpecialFolder.LocalApplicationData), 
    "MyProgram");
person Dirk Vollmar    schedule 02.01.2010

Вы пытаетесь получить доступ к значению перечисления LocalApplicationData, как если бы это была строка. Это не. Вам нужно найти путь к папке с GetFolderPath:

string path = Environment.GetFolderPath(
    System.Environment.SpecialFolder.LocalApplicationData);

Между прочим, лучше и менее подвержено ошибкам использовать Path.Combine для создания путей, а не делать это вручную:

string path = Path.Combine(@"C:\", "dir"); // gives you "C:\dir"

... и поэтому ваш код будет выглядеть так:

string appDataPath = Environment.GetFolderPath
    (System.Environment.SpecialFolder.LocalApplicationData);
string path = Path.Combine(appDataPath, "MyProgram");
Directory.CreateDirectory(path);
person Michael Petrotta    schedule 02.01.2010