2012-09-03 145 views
-3

configFilePath = @「C:\ Users \」+ userName + @「\ abc \ abc.exe的.config「;
if(File.Exists(configFilePath))
{
StreamReader fileReader = new StreamReader(configFilePath);
}
「找不到路徑的一部分」C: Users username abc abc.exe.config

上面一行拋出「找不到路徑的一部分」的異常。此錯誤發生在特定的機器上。在所有其他機器中,它工作正常。即使在那臺機器上,之前的代碼也一樣。機器沒有改變。我已閱讀討論此問題的所有論壇。但是無法弄清楚爲什麼在這臺機器上發生這種情況,現在也是這樣。有權訪問文件夾和文件。

+1

你確定該文件存在於該路徑上嗎? – Habib

+0

嘗試'if(File.Exists(configFilePath))StreamReader fileReader = new StreamReader(configFilePath);'確保文件存在 – Habib

+0

該文件存在並且能夠手動編輯該文件。當我試圖通過C#代碼訪問時,拋出錯誤。 – Ramya

回答

5

首先,使用Path.Combine()而不是字符串連接的路徑。但是,用戶名可能包含一個在路徑中無效的字符,例如單引號,因此它可能已被轉義。假設「C:\ Users」是用戶的目錄,而不是您自己的文件夾結構,更好的解決方案是使用Environment.GetFolderPath()方法和SpecialFolders枚舉中的UserProfile值查找該用戶的用戶配置文件文件夾。

+2

用於UserProfile的+1值 – Habib

+0

有關您的信息,用戶名是Irodgers,它沒有任何特殊字符。 – Ramya

+0

Win XP必須使用Environment.GetFolderPath(SpecialFolders.UserProfile)。 – linquize

0

需要考慮的是文件/文件夾的權限。我遇到了問題,因爲Windows更新,突然間文件夾安全性出現了問題。

+0

從問題「有權訪問文件夾和文件」。 – Shoban

相關問題