【问题标题】:How do I ensure a file path is valid?如何确保文件路径有效?
【发布时间】:2010-09-08 11:56:42
【问题描述】:

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

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

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

编辑:发现上面代码中的错误;)

补充一点:我希望文件名尽可能可读,因此应避免使用某种 BASE64。

【问题讨论】:

    标签: c# validation filenames


    【解决方案1】:

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

    【讨论】:

    • 铁杆,但好主意 - 这似乎是一种非常安全的方式。
    • 是的 - 它的安全方式。我们这样做是因为我们试图通过存储在临时目录中来保留上传的文件名,并且在从 mac 机器上传文件时遇到了问题。当然,现在我们使用生成的文件名存储在文件存储中,实际名称存储在数据库中。
    猜你喜欢
    • 2017-12-22
    • 2012-08-12
    • 2012-09-30
    • 2020-05-17
    • 1970-01-01
    • 2011-10-11
    • 2014-06-27
    • 2010-10-02
    • 1970-01-01
    相关资源
    最近更新 更多