Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用有效路径时,是什么导致NotSupportedException(“不支持给定路径的格式”)?_C#_.net - Fatal编程技术网

C# 使用有效路径时,是什么导致NotSupportedException(“不支持给定路径的格式”)?

C# 使用有效路径时,是什么导致NotSupportedException(“不支持给定路径的格式”)?,c#,.net,C#,.net,我正在编写一个简单的控制台应用程序,它将从测试文件中读取xml并将其反序列化为对象 var s = File.ReadAllBytes("‪G:\\Temp\\Publishing\\2.txt"); Stream _response = File.OpenRead("‪G:\\Temp\\Publishing\\2.txt"); var s = File.ReadAllBytes(@"‪g:\temp\publishing\2.txt"); var s = File.ReadAllBytes(

我正在编写一个简单的控制台应用程序,它将从测试文件中读取xml并将其反序列化为对象

var s = File.ReadAllBytes("‪G:\\Temp\\Publishing\\2.txt");
Stream _response = File.OpenRead("‪G:\\Temp\\Publishing\\2.txt");
var s = File.ReadAllBytes(@"‪g:\temp\publishing\2.txt");
var s = File.ReadAllBytes(@"‪G:\Temp\Publishing\2.txt");
我尝试了以上所有方法来读取该文件,它总是抛出带有消息的
NotSupportedException

不支持给定路径的格式


上述路径中的格式错误是什么?

根据参考源:


如果路径中
的索引位于第三位置或更高位置,则将抛出
不支持异常。(人们希望
是第二个字符)您确定源代码中没有零宽度组合字符或其他类似的Unicode骗局吗?

此外,不相关,您使用
ReadAllBytes
而不是获取路径的
StreamReader
并调用
ReadToEnd()
,有什么原因吗?或者更好的办法是,将路径直接加载到您得到的XML解析代码中(例如,
XElement.Load(string)
?@MatthewHaugen:问题是它们都会抛出错误。我会反驳说,“当ReadAllBytes做您真正想要的事情时,为什么要使用StreamReader?”@BillyONeal touché。我读得太快了。很抱歉。删除我的评论。至于你的第二点,我完全同意,但我认为这可能是调试的一个有益步骤。这似乎是一个奇怪的问题,所以可能会有一个奇怪的解决方案。更不用说,如果OP不知道这两种选择,我更愿意将它们带来对于一些不是最好的解决方法的事情,你可以尝试不同的方法。@MatthewHaugen:“尝试不同的事情”通常不是一个好的调试策略。@LibinTK我会尝试删除并重新键入整个路径。也不要从任何地方复制它。如果像Billy ONeal建议的那样有零宽度字符,您可能在每行之间复制它。我只是用
string\u path=@检查了索引‪G:\Temp\Publishing\2.txt;int i=path.IndexOf(“:”);
的索引竟然是2。但是如何/为什么?我从
Windows资源管理器中复制了路径,它导致了一些我仍然理解的事情,在路径字符串中添加了未知/隐藏字符,并将
推到第三位。我已经重新键入了完整的路径,它可以工作。@LibinTK我粘贴了你的示例Into Visual Studio,将其保存为文本文件,并在文本编辑器中打开。在“和”之间有一个
U+202A从左到右嵌入
字符。很好地发现了@BillyONeal!!:-)@LibinTK谢谢,为我节省了很多时间!从Windows资源管理器复制时引发了此错误。手动键入后,一切正常。