在C#中读取文件时,给定的路径格式不支持错误

时间:2019-03-15 11:34:45

标签: c# string

我正在尝试使用C#读取txt文件,但出现错误

  

不支持给定的路径

我在应用程序中做了很多次。但我不知道这是什么问题。这是我的代码:

 var filePath = @"‪E:\P1.txt";

 string[] lines = System.IO.File.ReadAllLines(filePath);

不支持路径 引发异常。有什么问题吗?

2 个答案:

答案 0 :(得分:7)

让我们看看(打印string dump ):

var filePath = @"‪E:\P1.txt";

Console.Write(string.Join(Environment.NewLine, 
                          filePath.Select(c => $"'{c}' : 0x{(int)c:x4}")));

结果:

'‪' : 0x202a    <- LEFT-TO-RIGHT EMBEDDING
'E' : 0x0045
':' : 0x003a
'\' : 0x005c
'P' : 0x0050
'1' : 0x0031
'.' : 0x002e
't' : 0x0074
'x' : 0x0078
't' : 0x0074

您能在字符串的开头看到不可见的0x202a(从左向右嵌入)符号吗?

https://www.fileformat.info/info/unicode/char/202a/index.htm

此符号使路径变为无效

答案 1 :(得分:6)

如下所示,您的文件路径包含不可显示的Left-to-Right Embedding(LRE)Unicode字符。

"\u202AE:\P1.txt"

如果仅删除该行并再次写入路径,则很可能会解决您的问题。