我写了这个小方法来实现这个目标。但是有没有更高效(更简单)的方法?我希望这可以帮助像我一样搜索这个问题的人。
var fileName = new System.Text.StringBuilder();
fileName.Append("*Bad/\ :, Filename,? ");
// get rid of invalid chars
while (fileName.ToString().IndexOfAny(System.IO.Path.GetInvalidFileNameChars()) > -1)
{
fileName = fileName.Remove(fileName.ToString().IndexOfAny(System.IO.Path.GetInvalidFileNameChars()), 1);
}
?
GetInvalidFileNameChars()
包括 '' 和 '/'。此例程假定您只传递文件名。如果您要检查文件路径的一部分,则可以使用Path.GetInvalidPathChars()
。 - CeresGetInvalidPathChars()
用于文件夹,GetInvalidFileNameChars()
用于文件名。 - CeresPath.InvalidPathChars
不包括通配符字符 *、?,以及冒号、反斜杠、正斜杠、小于号和大于号,还有双引号。 - Kiquenet