File.ReadAllLines将可执行路径添加到提供的路径之前

问题描述 投票:0回答:1

我遇到了一个非常奇怪的错误。甚至很奇怪,以至于我觉得这似乎是个小虫,但是我知道什么。

我在代码中使用File.ReadAllLines(path)方法,如下所示:

  string[] lines = File.ReadAllLines(path);

到目前为止非常简单。我读取的路径位于C驱动器上,因此其格式如下:C:\ Folder \ Folder \ File.txt

Putting a break-point at the above line and hovering over the path variable shows the correct path

在这里很奇怪。如果我实际运行此代码,则会得到IOException,该异常会通知我无效的路径。它显示的路径似乎是我的应用程序可执行位置的路径+我传递给该方法的路径。

'C:\ Users \ kingv \ Projects \ C#\ AUDS \ Bsp2 \ bin \ Debug \ netcoreapp3.1 \‪C:\ Users \ kingv \ Projects \ C#\ AUDS \ data \ asc1k.txt

[在使用File.ReadAllText方法时也会发生此错误。

奇怪的是,这似乎是项目特定的问题。我在这个解决方案中有两个项目。除了极少的差异外,它们具有完全相同的代码,并且与我的问题相关的代码完全相同(路径的声明和读取)

我以前从未遇到过File.ReadAllLines方法的问题。有人知道这里发生了什么吗?

c# file io path file-read
1个回答
0
投票

复制了您的问题,但只能通过复制问题中错误消息所写的路径来做到这一点。

您的路径开头有非法字符,因此,它不被视为绝对的,有根的路径,而被视为相对路径。

您需要修改路径的来源,或者如果它是文字,则只需删除"C:\部分并再次写入。

您可以通过以下方式看到它:

Encoding.UTF8.GetString(path)

据我所知,它是Unicode#8234,如下所示:

enter image description here

这在使用chrome开发人员工具检查元素内容时也可以看到:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.