C#在Windows 7上以非管理员身份在SpecialFolder.LocalApplicationData中创建目录时出错

时间:2010-01-02 21:21:59

标签: c# windows-7

我收到错误“拒绝访问路径'LocalApplicationData \ MyProgram \'。”尝试为我的日志文件创建目录时。这是我以非管理员用户身份运行程序的时候。

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

为什么会这样?

由于

2 个答案:

答案 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);