bool IsValidFilename(string testName)
{
Regex containsABadCharacter = new Regex("[" + Regex.Escape(System.IO.Path.InvalidPathChars) + "]");
if (containsABadCharacter.IsMatch(testName) { return false; };
// other checks for UNC, drive-path format, etc
return true;
}
字符串
[edit]
如果你想要一个正则表达式来验证文件夹路径,那么你可以使用这个: Regex regex = new Regex("^([a-zA-Z]:)?(\\\\[^<>:\"/\\\\|?*]+)+\\\\?$");个
[edit 2]
我记得一个棘手的事情,让你检查路径是否正确: var invalidPathChars = Path.GetInvalidPathChars(path)个 或(对于文件): var invalidFileNameChars = Path.GetInvalidFileNameChars(fileName)个
3条答案
按热度按时间gev0vcfq1#
你可以这样做(使用
System.IO.Path.InvalidPathChars
常量):字符串
[edit]
如果你想要一个正则表达式来验证文件夹路径,那么你可以使用这个:
Regex regex = new Regex("^([a-zA-Z]:)?(\\\\[^<>:\"/\\\\|?*]+)+\\\\?$");
个[edit 2]
我记得一个棘手的事情,让你检查路径是否正确:
var invalidPathChars = Path.GetInvalidPathChars(path)
个或(对于文件):
var invalidFileNameChars = Path.GetInvalidFileNameChars(fileName)
个vh0rcniy2#
正确验证文件夹名称可能是一项使命。我的博客Taking data binding, validation and MVVM to the next level - part 2
不要被标题所迷惑,它是关于验证文件系统路径的,它说明了使用.Net框架中提供的方法所涉及的一些复杂性。虽然您可能希望使用正则表达式,但这并不是完成这项工作的最可靠方法。
nzrxty8p3#
这是你应该使用的正则表达式:
字符串