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

本文关键字:错误 文件夹 返回 ApplicationData SpecialFolder Environment | 更新日期: 2023-09-27 18:17:17

我有一个奇怪的问题:我的。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

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

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

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

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

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

保存文件,如:

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))
{
     ......................
}

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