java - 检查路径在java中是否有效或合法

标签 java

<分区>

Possible Duplicate:
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 这不是必需的

求指教! :)

最佳答案

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

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

但是在进行正则表达式匹配之前,最好使用 File.getCanonicalFile() 规范化路径名。这将做一些事情,比如检查符号链接(symbolic link),摆脱多余的“。”。和“..”,并将驱动器号转换为标准格式……这应该会简化您的正则表达式。

关于java - 检查路径在java中是否有效或合法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13924808/

相关文章:

java - vertx 在集群中启用指标的情况下运行

java - 如何使用异步 API 在 java 中发送电子邮件

java - 无法在 Java 正则表达式中使用 '-' 字符,它在给定文本中找不到模式

java - Guice:将接口(interface)绑定(bind)到动态代理创建的实例

java - 将 long int 转换为单独的数字并反向填充为 vector

Java "Virtual Machine"与 Python "Interpreter"的说法?

java - 如何先播放动画然后再做一些事情?

java - 发现名称 : getText 存在冲突的 getter

java - 将字符串值(日期)从 Activity 传递到另一个 fragment 的 TextView

java - OSGI - 通过服务 ID 查找 bundle 引用