c#路径中具有非法字符怎么解决
发布网友
发布时间:2022-12-25 17:32
我来回答
共1个回答
热心网友
时间:2023-10-13 03:28
1.windows的目录中允许出现的字符是有限定的,不允许出现的字符可以通过Path..GetInvalidFileNameChars()得到,下面是过滤目录中非法字符的方法:
string illegal = "\"M\"\\a/ry/ h**ad:>> a\\/:*?\"| li*tt|le|| la\"mb.?";
string invalid = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars());
foreach (char c in invalid)
{
illegal = illegal.Replace(c.ToString(), "");
}
2.也可以使用正则表达式来做替换,如下代码:
string illegal = "\"M\"\\a/ry/ h**ad:>> a\\/:*?\"| li*tt|le|| la\"mb.?";
string regexSearch = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars());
Regex r = new Regex(string.Format("[{0}]", Regex.Escape(regexSearch)));
illegal = r.Replace(illegal, "");