基本目录 - 路径中的非法字符

时间:2013-04-10 10:17:16

标签: c# appdomain

我遇到了一个基本目录(.exe本身的位置)的行,并且读取了来自文本文件的行。

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

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

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

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:2)

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

改为使用StringReader,或删除File.ReadAllText

答案 1 :(得分: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

答案 2 :(得分: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

因此在该路径中不需要'\'