c# - 带有“|”的文件信息路径 在路径异常中给出非法字符?
问题描述
当我尝试使用包含“|”的字符串构造 FileInfo 对象时 字符,我在路径异常中得到一个非法字符。该字符串只是从我无法控制的某些数据源中解析出来的,因此我无法在原始字符串中添加任何转义字符。所以我在字符串上尝试了一个 .Replace("|","\|") 但仍然得到相同的异常。逃避这种情况的正确方法是什么,所以我没有得到例外?
另外,有没有办法在异常中获取违规字符,以便我的异常处理可以自动更正它,并且我不需要等待下一个不允许开始崩溃的魔法字符,然后我才能处理错误?
解决方案
听起来您的数据源并未为您正在使用的操作系统提供有效的文件路径/名称。
您可以使用Path.GetInvalidFileNameChars()
andPath.GetInvalidPathChars()
获取文件名或路径中不允许的字符数组。这些需要删除而不是转义才能对文件系统合法。剥离这些可能是一种解决方法,而不是修复。最好从数据源解决问题。
推荐阅读
- angular - 如何检索json值并存储在变量angular 4中
- python - 为什么我不能右键单击删除按钮?
- android - 在 Android 中选择特定 ABI 的两种不同方法
- node.js - 使用 Multer 上传的图像未显示在 Mongo DB 中
- mysql - 从两个不同表的连接中获取数据并从表中计数
- java - Elasticsearch 复合查询具有可为空或有值的特定术语?
- java - 使用 XML 参数 UTF-8 Java 发送 SOAP 请求
- rest - 如何通过在单个 REST API 调用中过滤父级来正确访问子级
- javascript - 带有数组长度参数的 JavaScript 函数
- javascript - 语法错误是什么,为什么非活跃玩家会被计分