C# - 路径中的非法字符

标签 c# string verbatim-string

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

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

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

String Filepath = @"C:\Temp\My Excel File.xls";

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

String Filepath = //Code to get FilePath from database

StringCorrectedFilePath = @+FilePath;

在此先感谢您的帮助

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

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

最佳答案

你是否这样做

String Filepath = @"C:\Temp\My Excel File.xls";

或者这个

String Filepath = "C:\\Temp\\My Excel File.xls";

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

关于C# - 路径中的非法字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37755905/

相关文章:

excel - 在 Excel 中搜索并返回多个文本字符串

c# - 如何同时使用字符串插值和逐字字符串来创建 JSON 字符串文字?

c# - Verbatim 或转义是处理 C# 中引号丰富的字符串的首选方式吗?

php - 无法在 PHP 中的字符串中添加空格

c++ - 将十六进制 std::string 转换为无符号字符

c# - 计算e数C#

c# - 如何使用不同的注入(inject)重新实例化 MVC3 Controller

rust - C# 像 Rust 中的逐字字符串?

c# - "On Exit"用于控制台应用程序

c# - XNA:什么是视口(viewport)?