StreamReader
我在 C# 中打开对象时遇到问题。我总是收到异常Illegal characters in path
。我可以让它工作的唯一方法是,如果我使用@
符号使用整个路径名,而不是转义\
文件路径中的任何字符。但是,这并没有真正帮助我,因为我从文件路径的两个单独变量和文件名作为另一种方法的输出(不能更改)开始。
我经历了八种排列都失败了,下面将其注释掉以供参考。为了此处的可读性,假装我正在声明dirIni
而fileIni
不是从另一个方法接收它们的值作为输出。话虽如此,声明样式 1 和 2 都使用所有四种连接方法都失败了。这里发生了什么?我几乎已经看到所有四种连接方法在其他示例中都有效。
编辑: 我已经简化了代码以显示1 个版本的中断:
string dirIni = @"C:\Users\Dan\AppData\Local\MyApp 4.0\INI\";
string fileIni = @"PWTRANSACTION.INI";
try
{
string transIniFullFileName = Path.Combine(dirIni, fileIni);
using (StreamReader file = new StreamReader(transIniFullFileName))
{
// do StreamReader stuff...
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
这是异常的堆栈跟踪:
at System.IO.Path.CheckInvalidPathChars(String path)
at System.IO.Path.GetFileName(String path)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize)
at System.IO.StreamReader..ctor(String path)
at TestApp.Form1.btnTestRead_Click(Object sender, EventArgs e) in C:\Users\Dan\TestApp\Form1.cs:line 4977