正则判断windows文件路径是否正确
public static bool IsLegalPath(byte pathType,string path) {
Regex regex = new Regex(@"^([a-zA-Z]:|([a-zA-Z]:)?\\[^\/\:\*\?\""\<\>\|\,]*)$");
Match m = regex.Match(path);
if (!m.Success) {
//可能包含了\\ / : * ? \" < > |等非法字符,或其他不正确写法
return false;
}
return true;
}
测试的路径:
"d:\\aasdlfsdkf\\alksfjiejf\\sjdksjkff" --结果: True
,"d:\\aasdlfsdkf\\alksfjiejf\\sjdksjkff\\" --结果: True
,"d:" --结果: True
,"d:\\ejf\\sf\"f\\" --结果: False
,"d:\\ejf\\sf/f\\" --结果: False
,"d:\\ejf\\sf:f\\" --结果: False
,"d:\\ejf\\sf:?\\" --结果: False
,"d:\\ejf\\sf:<\\" --结果: False
,"d:\\ejf\\sf:>\\" --结果: False
,"d:aljsdkfoiwje" --结果: False
,"d:\\" --结果: True
,"" --结果: False
,"\\" --结果: True
,":\\" --结果: False
,"\\:\\" --结果: False