System.ArgumentException 路径中的非法字符

Posted

技术标签:

【中文标题】System.ArgumentException 路径中的非法字符【英文标题】:System.ArgumentException illegal characters in path 【发布时间】:2010-09-26 22:29:33 【问题描述】:

我正在使用Path.Combine,其中一个字符串包含 Unicode 字符。我得到System.ArgumentException exception; illegal characters in path

根据MSDN文件路径/名称可以有unicode字符。为什么会出现此异常?

编辑:

代码如下:

Path.Combine("C:\PDM\Silver","Amabel Bender QQQ")

【问题讨论】:

如果我们能看到代码可能更容易... 你能发布有问题的路径吗? 【参考方案1】:

我发现了问题所在。第二个字符串中包含一个“制表符”字符,导致异常。 (当我在这里粘贴字符串时没有出现)

谢谢大家,很抱歉造成混乱。

【讨论】:

我刚刚同时发布了完全相同的建议 :)【参考方案2】:

您的路径集中可能有double quotes,因为Path.InvalidPathChars 包含双引号。

这将使您的异常与您的 Unicode 字符无关...


刚刚看到您对问题的编辑:VB,没有引号。

那么您的第二个字符串中是否复制了一个不可打印的字符,看起来像一个空格,就在您的“QQQ”字符串之前? 如果"Amabel BenderQQQ""AmabelBenderQQQ" 工作也试试(只是为了测试它是否与'QQQ' 字符或空间有关)

【讨论】:

【参考方案3】:

如果您使用的是 C#,那么我确定您需要转义反斜杠

Path.Combine("C:\\PDM\\Silver","Amabel Bender QQQ")

如果您使用的是 VB,则不适用...

【讨论】:

以上是关于System.ArgumentException 路径中的非法字符的主要内容,如果未能解决你的问题,请参考以下文章

System.ArgumentException: 无法找到字体“?”。

CreateSQLQuery(string) 抛出 System.ArgumentException

HttpClient 抛出 System.ArgumentException:'windows-1251' 不是受支持的编码名称

System.ArgumentException 路径中的非法字符

尝试使用 DataGridViewComboBox 和 ValueMember 时出现 System.ArgumentException

CreateSQLQuery(string)抛出System.ArgumentException