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

C#在Windows 7上以非管理员身份在SpecialFolder.LocalApplicationData中创建目录时出错,c#,windows-7,C#,Windows 7,尝试为日志文件创建目录时,出现错误“访问路径'LocalApplicationData\MyProgram\'被拒绝”。这是当我以非管理员用户的身份运行程序时 Directory.CreateDirectory(System.Environment.SpecialFolder.LocalApplicationData + "\\MyProgram\\"); 为什么会这样 感谢您,LocalApplicationData只是一个枚举值。您必须将其与以下各项结合使用: 您试图访问枚举值LocalA

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

Directory.CreateDirectory(System.Environment.SpecialFolder.LocalApplicationData + "\\MyProgram\\");
为什么会这样


感谢您,LocalApplicationData只是一个枚举值。您必须将其与以下各项结合使用:


您试图访问枚举值
LocalApplicationData
,就像它是一个字符串一样。不是。您需要使用
GetFolderPath
查找文件夹路径:

string path = Environment.GetFolderPath(
    System.Environment.SpecialFolder.LocalApplicationData);
顺便说一句,使用
路径形式更好,也更不容易出错。将
组合起来构建路径,而不是手工操作:

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);
string appDataPath = Environment.GetFolderPath
    (System.Environment.SpecialFolder.LocalApplicationData);
string path = Path.Combine(appDataPath, "MyProgram");
Directory.CreateDirectory(path);