首页 > 解决方案 > 带有“|”的文件信息路径 在路径异常中给出非法字符?

问题描述

当我尝试使用包含“|”的字符串构造 FileInfo 对象时 字符,我在路径异常中得到一个非法字符。该字符串只是从我无法控制的某些数据源中解析出来的,因此我无法在原始字符串中添加任何转义字符。所以我在字符串上尝试了一个 .Replace("|","\|") 但仍然得到相同的异常。逃避这种情况的正确方法是什么,所以我没有得到例外?

另外,有没有办法在异常中获取违规字符,以便我的异常处理可以自动更正它,并且我不需要等待下一个不允许开始崩溃的魔法字符,然后我才能处理错误?

标签: c#exceptionfile-io

解决方案


听起来您的数据源并未为您正在使用的操作系统提供有效的文件路径/名称。

您可以使用Path.GetInvalidFileNameChars()andPath.GetInvalidPathChars()获取文件名或路径中不允许的字符数组。这些需要删除而不是转义才能对文件系统合法。剥离这些可能是一种解决方法,而不是修复。最好从数据源解决问题。


推荐阅读