Environment.SpecialFolder.ApplicationData返回错误的文件夹

时间:2013-06-05 15:19:45

标签: c# wpf windows

我有一个奇怪的问题:我的.NET 4.0 WPF应用程序正在将数据保存到ApplicationData文件夹。

 Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\myProgram\\";

99.9%的案例效果很好,但在某些计算机上它会返回错误的文件夹 - 而不是返回用户文件夹,它会返回另一个文件夹:

C:\Users\<user>\AppData\Roaming\myProgram\  --correct
C:\Users\s\AppData\Roaming\myProgram\       --wrong

错误的文件夹没有写入/读取权限,因此我的程序无效。

程序似乎在不同的用户下运行,但如果我检查任务管理器,则用户是已记录的用户。

对于权限很少的域用户来说,问题似乎正在发生。

1 个答案:

答案 0 :(得分:10)

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

你创建一个要写的文本文件吗?

并且您还需要分配变量,例如:

String path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

if(File.Exists(path + "filetowrite.log"))
{
     ......................
}

在检查文件之前,检查目录是否更加确定。我希望能帮助你。