java - 验证字符串输入可能是有效路径

标签 java file

我想验证一个字符串路径。我不想检查路径是否存在或创建路径(包括创建 + 然后删除),我只是想检查输入字符串是否可以是执行系统上的验证路径。

到目前为止,我一直在搞乱 File 类,但没有成功。我希望以下操作在我的 OSX 机器上失败,但事实并非如此:

File f = new File("!@£$%^&*()±§-_=+[{}]:;\"'|>.?/<,~`±");
System.out.println(f.getCanonicalPath());

有什么可以帮我做到这一点吗?

最佳答案

您可以通过正则表达式来完成:File path validation in javascript

或者通过检查路径的父路径是否存在:Is there a way in Java to determine if a path is valid without attempting to create a file?

请注意路径取决于操作系统:https://serverfault.com/questions/150740/linux-windows-unix-file-names-which-characters-are-allowed-which-are-unesc

另外,仅仅因为路径是有效的,并不意味着文件可以写在那里。比如在Linux中,需要是 super 用户才能写入/usr/

关于java - 验证字符串输入可能是有效路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24460982/

相关文章:

c++ - 从原始文件中取出奇偶行到新文件,然后拼接回 C++

java - 如何为自定义布局适配器android studio创建搜索过滤器

java - 程序在没有任何输入的情况下输出 IntegerSet 的十六进制?

java - 获取文件的最后修改日期而不是 Java 中的最后创建日期

使用 fscanf 计算文本文件中有多少个整数

ios - 带CREATE_NEW的CreateFile在iOS中是否等效?

android - 如何在Android中获取子字符串?

java - 尝试使用 jtextfield 捕获异常?

java - 比较两个对象时 equals 方法如何返回 false : e1. equals(e2)

java - 如何处理一个823237个字符的字符串