文件名验证

时间:2014-03-10 12:25:31

标签: c# file

我通过以下方式检查文件名验证:

foreach (char c in System.IO.Path.GetInvalidFileNameChars())
{
    validFileName = validFileName.Replace(c, '_');
} 

有没有更快的方法呢?

2 个答案:

答案 0 :(得分:1)

那有什么不对?两行实现以及堆栈溢出搜索显示您的答案与另一个问题How to make a valid Windows filename from an arbitrary string?

的已接受答案相匹配

答案 1 :(得分:1)

这可能会更快,但我几乎不认为原件会慢到足以关心......

var invalidChars = Path.GetInvalidFileNameChars();
var fileNameChars = validFileName.ToCharArray();

for (int i = 0; i < fileNameChars.Length; ++i)
    if (invalidChars.Contains(fileNameChars[i]))
        fileNameChars[i] = '_';

validFileName = new string(fileNameChars);