【发布时间】:2018-09-30 02:48:54
【问题描述】:
我正在使用 System.IO.StreamReader 传递字符串路径 (@"C:\Users\someuser\somefolder\my.csv")
using (var reader = new StreamReader(filepath))
{
var csvReader = new CsvReader(reader);
var entries = csvReader.GetRecords<SpreadsheetEntry>();
return entries.ToList();
}
这会引发以下异常:
System.IO.IOException
HResult=0x8007007B Message=文件名、目录名称或卷标语法不正确:
'C:\Users\someuser\Source\Repos\StakeParser\StakeParser\bin\Debug\netcoreapp2.1\C:\Users\someuser\Desktop\testspreadsheet.csv' 源=System.Private.CoreLib 堆栈跟踪: 在 System.IO.FileStream.ValidateFileHandle(SafeFileHandle 文件句柄) .....
我的问题是,我如何使用这种正确性,以便以后可以在控制台中将完整路径作为参数传递? , 目前它从工作路径而不是绝对路径开始......
【问题讨论】:
-
请发布所有相关代码
-
all there: 1) 路径字符串 2) StreamReader 接受字符串并抛出错误 3) 异常和详细信息,基本上它说该路径没有文件,因为它结合了应用程序路径和文件路径传递给 StreamReader。
-
你确定所有的代码都在那里。您传递的路径和异常中抛出的路径表明路径设置不正确。如果您之前设置了正确的路径,那么
CSVReader类很可能正在从其他地方获取路径。 -
请检查我的问题的第二行。这是我传递给读者的字符串中唯一的东西。阅读器然后进行连接...
标签: c# csv path streamreader absolute-path