4
我想确保给定的文件名是有效的,即使这意味着替换或删除某些字符。目前,我正在这样做:如何确保文件路径有效?
Path.GetInvalidFileNameChars().ToList().ForEach (x => path.Replace (x, '-'));
但据我所知,this is not guaranteed to yield a valid filename。有没有更好的方法比上面执行预检查然后实际尝试打开文件?
编辑:点在上面的代码中的bug;)
次要另外:我宁愿保持文件名尽可能地易读,所以使用某种BASE64应避免。
硬核,但好主意 - 这似乎是一个非常安全的方法。 – mafu 2010-09-08 12:06:16
是的 - 它的安全方式。我们这样做是因为我们试图通过存储在临时目录中来保存上传的文件名,并且当从Mac机上传文件时遇到了问题。当然,现在我们使用生成的文件名存储在文件存储中,实际名称存储在数据库中。 – VinayC 2010-09-08 12:24:03