文件流 - 文件名、目录名或卷标语法不正确

Filestream - The filename, directory name, or volume label syntax is incorrect

我有这个应该打开文件的 C# 代码。

string filePath = @"‪C:\Data3.jpg";
FileStream fs = System.IO.File.OpenRead(filePath);

但是,它在第​​二行中断并显示错误消息 The filename, directory name, or volume label syntax is incorrect

异常详细信息还显示 C:\dotnet\solution\projectname\‪C:\Data\123.jpg'。为什么会进入项目路径?

这是一个棘手的问题,但又很简单。

上面的代码是正确的,和微软文档中的例子差不多。

但是有一个不可见的Unicode字符E280AA

U+202A ‪ e2 80 aa LEFT-TO-RIGHT EMBEDDING

就在字母“C”之前。

因此这不起作用:

string filePath = @"‪C:\Data3.jpg";

但这个确实如此:

string filePath = @"C:\Data3.jpg";

十六进制代码的第一个(只是实际的字符串)如下所示:

22E280AA433A5C446174615C3132332E6A706722

第二个没有粗体序列。 您可以在调试器中或借助诸如 记事本++,您可以在其中使用 Extensions/Converter/ASCII->HEX 查看十六进制代码。