测试语法正确的路径
.NET 中是否有一个函数可以测试字符串在语法上是否是正确的路径? 我特别不想让它测试路径是否确实存在。
我目前对此的看法是正则表达式:
([a-zA-Z]:|\\)?\\?([^/\\:*?"<>|]+[/\\])*[^/\\:*?"<>|]*
匹配:
c:\
bbbb
\\bob/john\
..\..\
拒绝:
xy:
c:\\bob
In .NET is there a function that tests if a string is syntactically a correct path? I specifically don't want it to test if the path actually exists.
my current take on this is a regex:
([a-zA-Z]:|\\)?\\?([^/\\:*?"<>|]+[/\\])*[^/\\:*?"<>|]*
matches:
c:\
bbbb
\\bob/john\
..\..\
rejects:
xy:
c:\\bob
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我相信如果 System.IO.Path.GetFullPath(path) 不是语法上正确的路径而不检查它是否存在,则会抛出异常。
I believe System.IO.Path.GetFullPath(path) will throw an exception if it is not a syntactically correct path without checking to see if it exists.
我建议为此使用正则表达式,因为您特别不想测试路径是否存在。
这是google 帮我挖掘的内容:
您可以将其与 System.IO.Path 结合起来.GetInvalidPathChars() 方法并使正则表达式动态排除所有无效字符。
I'd suggest just using a regex for this since you specifically don't want to test if the path exists.
Here's something google helped me dig up:
You could combine this with System.IO.Path.GetInvalidPathChars() method and make the regex dynamically exclude all of the invalid characters.
您也许可以使用 System.IO.Path 和 GetInvalidPathChars() 函数?
You might be able to use System.IO.Path and the GetInvalidPathChars() function?