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