2013-06-05 34 views
12

我有一個奇怪的問題:我的.NET 4.0 WPF應用程序正在將數據保存到ApplicationData文件夾。Environment.SpecialFolder.ApplicationData返回錯誤的文件夾

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\myProgram\\"; 
的情況下

99.9%是偉大的工作,但在某些計算機將返回錯誤的文件夾 - 而不是返回它返回另一個文件夾中的用戶文件夾:

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

錯誤的文件夾沒有寫/讀取權限,所以我的程序無法正常工作。

看來程序運行在不同的用戶下,但是如果我檢查任務管理器,用戶是已登錄的用戶。

這個問題似乎發生在權限很少的域用戶身上。

+0

你是應用程序的Web應用程序? –

+0

不,這是一個WPF應用程序,框架4.0 –

+14

對不起,是迂腐,但**使用Path.Combine!** –

回答

8
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 

你是否創建了一個文本文件來寫你想要的?

,你也需要指定一個變量,例如:

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

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

之前也來檢查文件,檢查目錄existe更加肯定。問候,我希望能幫助你。

+6

始終使用Path.Combine,從來沒有「+」爲你不知道路徑是否以backslahs結尾(或根本不使用反斜槓)。 – nivs1978