I'm getting the error "Access to the path 'LocalApplicationData\MyProgram\' is denied." when trying to create a directory for my log file. This is when I'm running the program as a non-admin user开发者_StackOverflow中文版.
Directory.CreateDirectory(System.Environment.SpecialFolder.LocalApplicationData + "\\MyProgram\\");
Why would this be?
Thanks
LocalApplicationData
is just an enum value. You will have to use it in combination with GetFolderPath
:
string folder = Path.Combine(Environment.GetFolderPath(
Environment.SpecialFolder.LocalApplicationData),
"MyProgram");
You're trying to access the enumeration value LocalApplicationData
as if it were a string. It's not. You need to find the folder path with GetFolderPath
:
string path = Environment.GetFolderPath(
System.Environment.SpecialFolder.LocalApplicationData);
Incidentally, it's better form, and less error-prone, to use Path.Combine
to build up paths, rather than doing it by hand:
string path = Path.Combine(@"C:\", "dir"); // gives you "C:\dir"
...and so your code would end up looking like:
string appDataPath = Environment.GetFolderPath
(System.Environment.SpecialFolder.LocalApplicationData);
string path = Path.Combine(appDataPath, "MyProgram");
Directory.CreateDirectory(path);
精彩评论