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一起工作有什么建议可以导致这个错误吗?(文件存在于此路径)

Read text file return 'System.NotSupportedException'

问题是字符串中有一个不可见的字符。我不知道它们是如何到达那里的,其他人猜测源代码通过一个程序,比如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",你可以复制并粘贴进去,你的问题就会解决。