Я добираюсь, ошибка "Доступ к пути 'LocalApplicationData\MyProgram \' отклонена". при попытке создать каталог для моего файла журнала. Это - когда я запускаю программу как неадминистраторский пользователь.
Directory.CreateDirectory(System.Environment.SpecialFolder.LocalApplicationData + "\\MyProgram\\");
Почему это было бы?
Спасибо
LocalApplicationData
- это всего лишь значение перечисления. Вам придется использовать его в сочетании с GetFolderPath
:
string folder = Path.Combine(Environment.GetFolderPath(
Environment.SpecialFolder.LocalApplicationData),
"MyProgram");
Вы пытаетесь получить доступ к значению перечисления 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);