【发布时间】:2010-09-02 10:20:20
【问题描述】:
如果文件名有其他字符,那么这个a-zA-Z0-9!@$%^&*()_+=-[]{}';,.
我们必须用某个字符替换它们或删除它们。
【问题讨论】:
如果文件名有其他字符,那么这个a-zA-Z0-9!@$%^&*()_+=-[]{}';,.
我们必须用某个字符替换它们或删除它们。
【问题讨论】:
resultString = Regex.Replace(subjectString, @"[^a-zA-Z0-9!@$%^&*()_+=[\]{}';,.-]", "X");
应该这样做。
解释:我复制了您的字符列表并将它们粘贴到negated character class ([^...]) 中。我只需要进行两个小修改:转义右括号 (\]) 并将破折号放在字符串的末尾。
【讨论】:
using System.Linq;
using System.IO;
string path = ...;
IEnumerable<char> invalidChars = Enumerable.Concat(
Path.GetInvalidFileNameChars(),
Path.GetInvalidPathChars());
foreach (char c in invalidChars)
{
path = path.Replace(c, ''); // or any char you want
}
【讨论】: