C# 路径 CsvReader语言 - 如何使用绝对路径



I'm using System.IO.StreamReader passing a string path (@"‪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 消息=文件名、目录名或卷标语法不正确

'C:\Users\someuser\Source\Repos\StakeParser\StakeParser\bin\Debugetcoreapp2.1\‪C:\Users\someuser\Desktop\testspreadsheet.csv'Source=System.Private.CoreLib 堆栈跟踪: at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle( .....

我的问题是,我如何使用这种相关性,以便以后可以在控制台中将完整路径作为参数传递? ,目前它从工作路径开始,而不是采取绝对路径......

这里提供了答案。流读取器将绝对路径添加到其运行的工作路径中。

http://www.introprogramming.info/tag/streamreader-class/

C:UserssomeuserSourceReposStakeParserStakeParserbinDebugnetcoreapp2.1‪C:UserssomeuserDesktoptestspreadsheet.csv

仔细查看 filepath 变量StreamReader(filepath)它是 2 个路径组合在一起:

C:UserssomeuserSourceReposStakeParserStakeParserbinDebugnetcoreapp2.1
C:UserssomeuserDesktoptestspreadsheet.csv

我猜你只想要它的第二部分。在显示代码之前的某个地方,您可能连接了当前工作目录和文件名,但该文件名已经是整个路径。

.NET 具有 Path 类,对于处理路径非常有用:https://learn.microsoft.com/en-us/dotnet/api/system.io.path

有时 C# 不允许从 C:\Users...文件夹。

使用其他文件夹,如 D:\SomeFolder。

它将解决问题。

相关内容

  • 没有找到相关文章

最新更新