使用有效路径时导致NotSupportedException("不支持给定路径的格式")的原因是什么?

Lib*_* TK 20 .net c#

我正在编写一个简单的控制台应用程序,它将从测试文件中读取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");
Run Code Online (Sandbox Code Playgroud)

我已经尝试了以上所有内容来读取文件,它总是抛出NotSupportedException一条消息

不支持给定路径的格式.

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

Bil*_*eal 35

根据参考资料来源:http://referencesource.microsoft.com/#mscorlib/system/io/filestream.cs#732

NotSupportedException如果:路径中的索引位于第三个位置或稍后,则抛出此异常.(人们期望:成为第二个角色)你确定你的源中没有零宽度组合字符或其他类似的Unicode恶作剧吗?

  • 我从'Windows资源管理器'复制了路径,它引起了我仍然理解的东西,在路径字符串中添加一个未知/隐藏的字符,并将`:`推到第三个位置.我重新输入了完整的路径并且有效. (12认同)
  • @LibinTK我将您的示例粘贴到Visual Studio中,将其保存为文本文件,然后在文本编辑器中将其打开.在"和G之间"有一个"U + 202A LEFT-TO-RIGHT EMBEDDING"字符. (5认同)
  • 我只是使用`string _path = @"G:\ Temp\Publishing\2.txt"; int i = path.IndexOf(':');``和令人惊讶的`:`的索引是2来检查索引.但是如何/为什么? (3认同)
  • @LibinTK 谢谢你,节省了我很多时间!从 Windows 资源管理器复制会引发此错误。手动输入,没问题。 (3认同)