C# - 路径中的非法字符

Sim*_*all 4 c# string verbatim-string

我有一个数据库表,其中包含我使用 C# 脚本导入的 excel 文件的文件路径。

该脚本工作正常,除非文件路径包含空格,例如C:\Temp\My Excel File.xls,我收到一条Illegal characters in path错误消息。不幸的是,我无法更改源文件名。

如果我将文件路径硬编码为如下所示,则它可以正常工作。

String Filepath = @"C:\Temp\My Excel File.xls";
Run Code Online (Sandbox Code Playgroud)

我如何更改它以便我可以包含一个字符串变量来存储数据库中的文件路径,例如

String Filepath = //Code to get FilePath from database

StringCorrectedFilePath = @+FilePath;
Run Code Online (Sandbox Code Playgroud)

提前感谢任何帮助

编辑:问题是由以创建无效转义序列的数字开头的文件引起的。例如C:\Temp\20160611 My Excel File.xls

编辑 2:已解决 - 错误是由文件扩展名后出现的回车字符引起的。请参阅我的答案以获取解决方案。

Han*_*ing 5

无论你这样做

String Filepath = @"C:\Temp\My Excel File.xls";
Run Code Online (Sandbox Code Playgroud)

或这个

String Filepath = "C:\\Temp\\My Excel File.xls";
Run Code Online (Sandbox Code Playgroud)

存储在内存中的字符串只是C:\Temp\My Excel File.xls,无论调试器可能告诉你什么。因此,当您从某处(数据库、文件、用户输入等)读取一些字符串时,您无需“转义”反斜杠。所以只需使用该字符串。