在.NET中是否有一个函数可以测试字符串在语法上是否是正确的路径?我特别不希望它测试路径是否确实存在。
我目前对此的看法是一个正则表达式:
([a-zA-Z]:|\\)?\\?([^/\\:*?"<>|]+[/\\])*[^/\\:*?"<>|]*
匹配:
c:\
bbbb
\\bob/john\
..\..\
拒绝:
xy:
c:\\bob
答案 0 :(得分:3)
我相信System.IO.Path.GetFullPath(path)如果不是语法正确的路径而不检查它是否存在,则会抛出异常。
答案 1 :(得分:1)
我建议只使用正则表达式,因为你特别不想测试路径是否存在。
RegEx="^([a-zA-Z]\:|\\\\[^\/\\:*?"<>|]+\\[^\/\\:*?"<>|]+)(\\[^\/\\:*?"<>|]+)+(\.[^\/\\:*?"<>|]+)$"
您可以将它与System.IO.Path.GetInvalidPathChars()方法结合使用,并使正则表达式动态排除所有无效字符。
答案 2 :(得分:0)
您可以使用System.IO.Path和GetInvalidPathChars()函数吗?