开发者

C# Error creating directory in SpecialFolder.LocalApplicationData on Windows 7 as a non Admin

开发者 https://www.devze.com 2022-12-15 12:40 出处:网络
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 u

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);
0

精彩评论

暂无评论...
验证码 换一张
取 消