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



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

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

99.9%的情况下工作得很好,但在某些计算机上它返回错误的文件夹-而不是返回用户文件夹,而是返回另一个文件夹:

C:Users<user>AppDataRoamingmyProgram  --correct
C:UserssAppDataRoamingmyProgram       --wrong

错误的文件夹没有读写权限,所以我的程序不能工作。

程序似乎在另一个用户下运行,但如果我检查任务管理器,该用户是登录的用户。

这个问题似乎发生在权限很少的域用户身上。

您是否也创建要写入的文本文件?

保存文件,如:

String path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
var filePath = Path.Combine(path, "filetowrite.log"); // Handles whether there is a `` or not.
if (File.Exists(filePath))
{
     ......................
}

注意在做任何文件操作之前,应该检查目录是否存在

最新更新