文件流 - 文件名、目录名或卷标语法不正确
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 查看十六进制代码。
我有这个应该打开文件的 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 查看十六进制代码。