File.ReadAllLines 将可执行路径添加到提供的路径
File.ReadAllLines prepends executable path to provided path
我遇到了一个非常奇怪的错误。如此奇怪,甚至对我来说这似乎是一个错误,但我知道什么。
我在代码中使用 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:\
部分删掉重新写。
您可以通过以下方式查看:
Encoding.UTF8.GetString(path)
据我所知,Unicode #8234 是这样的:
用chrome的开发者工具查看元素内容时也可以看到:
我遇到了一个非常奇怪的错误。如此奇怪,甚至对我来说这似乎是一个错误,但我知道什么。
我在代码中使用 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:\
部分删掉重新写。
您可以通过以下方式查看:
Encoding.UTF8.GetString(path)
据我所知,Unicode #8234 是这样的:
用chrome的开发者工具查看元素内容时也可以看到: