我尝试逐行阅读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
什么可能导致此错误的任何建议? (该文件存在于此路径中)
答案 0 :(得分:1)
问题是你的字符串中有一个不可见的字符。我不知道他们是如何到达那里的,others已经猜到源代码经过了一个程序,比如Word,它修改了你不知道的文本。或者你从某个地方复制并粘贴它,并且某处有一个看不见的字符。
至于角色,我发现它首先复制你的字符串(如果我只是逐字地输入你的字符串然后它赢得有隐形字符,它必须从您的文本),然后删除引号之间的所有内容,然后使用位转换器公开IDE显示为不可见字符的实际字节:
Console.WriteLine(BitConverter.ToString(Encoding.UTF8.GetBytes(@"")));
给出:
E2-80-AA
哪个是"Unicode Character 'LEFT-TO-RIGHT EMBEDDING' (U+202A)"。请注意,由于1个不可见的字符,@"".Length
会返回1
。
这个字符串,我手工输入而不是从你的字符串中复制,不会有不可见的字符:Console.WriteLine(BitConverter.ToString(Encoding.UTF8.GetBytes(@"")));
并只返回一个字符串.Empty with a长度为0。
解决方案是删除整个字符串(包括"
)并自行输入,或者只突出引号之间的可见字符并复制/将它们粘贴到一个新字符串中。以下是一个固定字符串:@"D:\links.txt"
,您可以复制并粘贴该字符串,您的问题将得到解决。