1

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

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

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

火柴:

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

拒绝:

xy:
c:\\bob
4

3 回答 3

3

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

于 2008-11-20T22:57:07.700 回答
1

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

这是谷歌帮助我挖掘的东西:

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

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

于 2008-11-20T22:52:37.367 回答
0

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

于 2008-11-20T22:54:08.797 回答