1

我在找到基本目录(.exe 本身的位置)的行时遇到问题,并且读取了其中的文本文件中的一行。

它在代码中为这一行抛出了“路径中的非法字符”错误:

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

这可能是因为我格式化了StreamReader()错误的论点,(可能AppDomain.CurrentDomain.BaseDirectory)但我不能确定,因为那里没有太多关于 appdomain 的其他材料。

任何帮助,将不胜感激。

4

3 回答 3

2

StreamReader接受参数的构造函数的重载string是文件名,而不是内容。

改用StringReader,或删除File.ReadAllText.

于 2013-04-10T10:34:24.017 回答
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

于 2013-04-10T10:24:47.940 回答
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

所以在那条路径中不需要'\'

于 2013-04-10T10:32:39.517 回答