可能重复:
Is there a way in Java to determine if a path is valid without attempting to create a file?
我想检查字符串是否是文件夹或文件的有效路径名。有效路径名称可以是C:\ Games \ WarCraft,无效路径是c:[] [] Games \\ WarCraft。我如何检查这是否正确?
我对检查该文件或文件夹是否存在不感兴趣。我不想使用任何像Apache Commons这样的外部库来做它,只是普通的旧java。
另外,我想让我的代码系统独立 - UPDATE 虽然不是必需的
请告诉我们线索! :)答案 0 :(得分:2)
您无法以独立于系统的方式执行此操作,并且我认为没有任何标准API用于路径名验证。
我能想到的最好的建议是使用正则表达式来匹配路径名。确切的细节将取决于您想要约束路径名的松散程度或紧密程度。例如,在Linux上,您可能希望禁止路径名中的空格,因为虽然它们是有效的,但它们也会导致编写糟糕的shell脚本的问题。或者你可能想要坚持绝对(或相对)路径名。
但在进行正则表达式匹配之前,使用File.getCanonicalFile()
规范化路径名是个好主意。这将做一些事情,如检查符号链接,摆脱多余的“。”和“..”,并将驱动器字母转换为标准形式......这应该简化你的正则表达式。