Read text file return 'System.NotSupportedException'
本文关键字:System NotSupportedException text file Read return | 更新日期: 2023-09-27 18:05:17
我尝试逐行读取Text
文件:
static void Main(string[] args)
{
int counter = 0;
string line;
string links = @"D:'links.txt";
// Read the file and display it line by line.
System.IO.StreamReader file = new System.IO.StreamReader(links);
while ((line = file.ReadLine()) != null)
{
Console.WriteLine(line);
counter++;
}
file.Close();
// Suspend the screen.
Console.ReadLine();
}
并得到一个错误:
类型为"System"的未处理异常。NotSupportedException"由于发生在mscorlib.dll
附加信息:指定的路径格式不支持
我和Windows 10
一起工作有什么建议可以导致这个错误吗?(文件存在于此路径)
问题是字符串中有一个不可见的字符。我不知道它们是如何到达那里的,其他人猜测源代码通过一个程序,比如Word,修改了你不知道的文本。或者你从某个地方复制粘贴了它,那个地方有不可见的字符
至于字符,我发现它首先复制你的字符串(如果我只是逐字输入你的字符串,那么它不会有不可见的字符,它必须从你的文本复制),然后删除引号之间的一切,然后使用比特转换器暴露实际字节,你的IDE显示为一个不可见的字符:
Console.WriteLine(BitConverter.ToString(Encoding.UTF8.GetBytes(@"")));
给:
e2 - 80 aa
这是"Unicode字符'从左到右嵌入' (U+202A)"。注意,@"".Length
在这里返回1
,因为有1个不可见字符。
这个字符串,我手工输入的,而不是从你的字符串复制,没有不可见字符:Console.WriteLine(BitConverter.ToString(Encoding.UTF8.GetBytes(@"")));
,只是返回一个字符串。空,长度为0。
一个解决方案是擦除整个字符串(包括"
),然后自己键入它,或者只突出显示引号之间的可见字符,并将它们复制/粘贴到一个新的字符串中。这里有一个固定的字符串:@"D:'links.txt"
,你可以复制并粘贴进去,你的问题就会解决。