测试语法正确的路径

时间:2008-11-20 22:48:52

标签: .net filepath string-matching

在.NET中是否有一个函数可以测试字符串在语法上是否是正确的路径?我特别不希望它测试路径是否确实存在。

我目前对此的看法是一个正则表达式:

([a-zA-Z]:|\\)?\\?([^/\\:*?"<>|]+[/\\])*[^/\\:*?"<>|]*

匹配:

c:\
bbbb
\\bob/john\
..\..\

拒绝:

xy:
c:\\bob

3 个答案:

答案 0 :(得分:3)

我相信System.IO.Path.GetFullPath(path)如果不是语法正确的路径而不检查它是否存在,则会抛出异常。

答案 1 :(得分:1)

我建议只使用正则表达式,因为你特别不想测试路径是否存在。

这是google helped me dig up

RegEx="^([a-zA-Z]\:|\\\\[^\/\\:*?"<>|]+\\[^\/\\:*?"<>|]+)(\\[^\/\\:*?"<>|]+)+(\.[^\/\\:*?"<>|]+)$"

您可以将它与System.IO.Path.GetInvalidPathChars()方法结合使用,并使正则表达式动态排除所有无效字符。

答案 2 :(得分:0)

您可以使用System.IO.Path和GetInvalidPathChars()函数吗?