21

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

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

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

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

4

1 回答 1

15

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

如果是这样,请保存一个文件,例如:

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

另请注意,在进行任何文件操作之前,应检查目录是否存在。

于 2014-01-31T15:49:32.820 回答