我收到错误“拒绝访问路径'LocalApplicationData \ MyProgram \'。”尝试为我的日志文件创建目录时。这是我以非管理员用户身份运行程序的时候。
Directory.CreateDirectory(System.Environment.SpecialFolder.LocalApplicationData + "\\MyProgram\\");
为什么会这样?
由于
答案 0 :(得分:22)
LocalApplicationData
只是一个枚举值。您必须将其与GetFolderPath
结合使用:
string folder = Path.Combine(Environment.GetFolderPath(
Environment.SpecialFolder.LocalApplicationData),
"MyProgram");
答案 1 :(得分:11)
您尝试访问枚举值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);