我通过以下方式检查文件名验证:
foreach (char c in System.IO.Path.GetInvalidFileNameChars())
{
validFileName = validFileName.Replace(c, '_');
}
有没有更快的方法呢?
答案 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);