2013-04-10 46 views
1

我在找到基本目錄(.exe本身的位置)和讀取內部文本文件的一行的行時遇到了問題。基本目錄 - 路徑中的非法字符

它拋出了「非法字符的路徑」錯誤此行的代碼:

StreamReader sr = new StreamReader(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "\Parameters.txt")); 

這可能是因爲我的結果格式化的StreamReader()參數錯誤,(大概AppDomain.CurrentDomain.BaseDirectory),但我不能確定,因爲沒有太多關於appdomain的其他材料。

任何幫助,將不勝感激。

+3

那麼你不能做'「\ Parameters.txt」'。做'「\\ Parameters.txt」或'「/Parameters.txt」' – leppie 2013-04-10 10:20:04

+0

^我也試過。它仍然會拋出同樣的錯誤。 – 2013-04-10 10:28:21

+0

我現在發現了這個問題,看到我的回答:) – leppie 2013-04-10 10:34:46

回答

2

StreamReader構造函數的過載參數爲string參數是文件名,而不是內容。

改爲使用StringReader,或者刪除File.ReadAllText

+1

謝謝。完美的答案。我會投這個答案,但我還沒有足夠的代表。 – 2013-04-10 10:49:10

1

嘗試下面的代碼

var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Parameters.txt"); 

有此功能的其它過載,例如

Combine(String[])   //Combines an array of strings into a path. 
Combine(String, String)  //Combines two strings into a path. 
Combine(String, String, String)    //Combines three strings into a path. 
Combine(String, String, String, String)  //Combines four strings into a path. 

http://msdn.microsoft.com/en-us/library/system.io.path.combine.aspx

0

從通道中取出'\' ...

StreamReader sr = new StreamReader(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "Parameters.txt")); 

AppDomain.CurrentDomain.BaseDirectory + "Parameters.txt" - >這好像返回正確路徑下

路徑:\Visual Studio 2010\Projects\Sample\Sample\bin\Release\Parameters.txt

因此,在該路徑中不需要'\'