我遇到了一个基本目录(.exe本身的位置)的行,并且读取了来自文本文件的行。
它在代码中抛出了这行中的'非法字符路径'错误:
StreamReader sr = new StreamReader(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "\Parameters.txt"));
这可能是因为我格式化了StreamReader()
错误的参数(可能是AppDomain.CurrentDomain.BaseDirectory
),但我无法确定,因为那里没有关于appdomain的其他材料。
任何帮助都将不胜感激。
答案 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
因此在该路径中不需要'\'