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

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

错误的文件夹没有写/读权限,所以我的程序无法正常工作。

看来程序运行在不同的用户下,但是如果我检查任务pipe理器,用户是已login的用户。

问题似乎发生在域用户权限很less的情况下。

Solutions Collecting From Web of "Environment.SpecialFolder.ApplicationData返回错误的文件夹"

 Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 

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

还需要指定一个变量,例如:

 String path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); if(File.Exists(path + "filetowrite.log")) { ...................... } 

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