4

可能重复:
Java 中有没有办法在不尝试创建文件的情况下确定路径是否有效?

我想检查一个字符串是否是文件夹或文件的有效路径名。有效路径名可以是 C:\Games\WarCraft,无效路径是 c:[][]Games\\WarCraft。我如何检查这是否正确?

我对检查该文件或文件夹是否存在不感兴趣。我不想使用任何像 Apache Commons 这样的外部库来做到这一点,只是普通的旧 java。

另外,我想让我的代码系统独立 -虽然没有必要更新

请提供线索!:)

4

1 回答 1

2

您不能以独立于系统的方式执行此操作,而且我认为没有任何用于路径名验证的标准 API。

我能想到的最好的建议是使用正则表达式来匹配路径名。确切的细节将取决于您希望限制路径名的松散或紧密程度。例如,在 Linux 上,您可能希望在路径名中禁止空格,因为虽然它们是有效的,但它们也会导致编写不佳的 shell 脚本出现问题。或者您可能想要坚持使用绝对(或相对)路径名。

但在进行正则表达式匹配之前,最好使用File.getCanonicalFile(). 这将执行诸如检查符号链接,摆脱多余的“。”之类的事情。和“..”,并将驱动器号转换为标准格式......这应该简化你的正则表达式。

于 2012-12-18T01:11:52.947 回答