C#在Windows 7上以非管理员身份在SpecialFolder.LocalApplicationData中创建目录时出错
我收到错误“拒绝访问路径’LocalApplicationData \ MyProgram \’。” 尝试为我的日志文件创建目录时。 这是我以非管理员用户身份运行程序的时候。
Directory.CreateDirectory(System.Environment.SpecialFolder.LocalApplicationData + "\\MyProgram\\");
为什么会这样?
谢谢
LocalApplicationData
只是一个枚举值。 您必须将它与GetFolderPath
结合使用:
string folder = Path.Combine(Environment.GetFolderPath( Environment.SpecialFolder.LocalApplicationData), "MyProgram");
您正在尝试访问枚举值LocalApplicationData
,就好像它是一个字符串。 不是。 您需要使用GetFolderPath
查找文件夹路径:
string path = Environment.GetFolderPath( System.Environment.SpecialFolder.LocalApplicationData);
顺便说一下,使用Path.Combine
来构建路径,而不是手工完成,forms更好,更不容易出错:
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);