为什么这不会做任何事情,输出与输入相同?我很困惑!!!
string name = ";;;'']][[ zion \\\[[[]]]"
char[] invalidChars = System.IO.Path.GetInvalidPathChars();
string invalidString = Regex.Escape(new string(invalidChars));
string valid = Regex.Replace(name, "[" + invalidString + "]", "");
最佳答案
编辑:
我认为这可能只是测试数据不完善的情况(以及其他人建议的功能更改)。试试这个:
string name = "tru\\e.jpg";
char[] invalidChars = System.IO.Path.GetInvalidFileNameChars();
string invalidString = Regex.Escape(new string(invalidChars));
string valid = Regex.Replace(name, "[" + invalidString + "]", "");
Console.WriteLine(valid);
我得到“true.jpg”输出。在生产中使用它之前,我肯定会建议进行更多测试! :)
关于C#:从文件名字符串中去除非法字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1403083/