为文档指定的名称不是有效的文件名。文件名中不能包含以下任何字符:
星号 (*)
竖线 (|)
反斜杠 ()
冒号 (:)
双引号 (“)
小于号 (<)
大于号 (>)
问号 (?)
正斜杠 (/)
这里我们只利用.NETFramework自带的方法进行删除:
方法一:
var invalidFileName = "\"I\"\\n/va/l**id:>> file\\/:*?\"| il*e|n|| a\"me.?\t\r";
var invalid = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars());
foreach (char c in invalid)
{
invalidFileName = invalidFileName.Replace(c.ToString(), "");
}
Console.WriteLine(invalidFileName);
第二种方法是使用正则表达式:
var invalidFileName = "\"I\"\\n/va/l**id:>> file\\/:*?\"| il*e|n|| a\"me.?\t\r";
var regexSearch = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars());
var reg = new Regex(string.Format("[{0}]", Regex.Escape(regexSearch)));
invalidFileName = reg.Replace(invalidFileName, "");
Console.WriteLine(invalidFileName);