c# - 如何确保文件路径有效?

标签 c# validation filenames

我想确保给定的文件名是有效的,即使这意味着替换或删除一些字符。我目前正在这样做:

Path.GetInvalidFileNameChars ().ToList ().ForEach (x => path.Replace (x, '-'));

但据我所知,this is not guaranteed to yield a valid filename .有没有比执行上述预检查然后实际 try catch 打开文件更好的方法?

编辑:找出上面代码中的错误;)

次要补充:我希望文件名尽可能保持可读性,因此应避免使用某种 BASE64。

最佳答案

我们过去使用的一种方法是用一些特殊字符(例如连字符)替换所有不在某些特定范围内的字符(字母数字和连字符/下划线)。这是假设大多数文件系统都允许这个频段。但是说一些 future 的 FS 可能不允许说数字是不安全的。

关于c# - 如何确保文件路径有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3667446/

相关文章:

c# - 如何将标签添加到 DataGridView 单元格

c - 使用 strtok 验证用户在 C 中输入的日期的问题

javascript - 如何延迟 jquery validate 插件的 key up 事件验证?

javascript - 检查变量是否包含数组中的任何字符

javascript - Nodejs 从文件名数组中搜索文件

Windows 中的 Java : files in a directory ordered with a specific name

c# - LLBLGen 中的嵌套选择

c# - 如何从 C# 中单独文件夹中的文件导入命名空间

c# - ASP.NET MVC5 以自定义格式显示日期

python - 过滤数据框中具有相同值的列 - Python