在 Java 中查找具有通配符模式的文件
当前的问题涉及找到一种方法来识别与通配符字符串匹配的文件,例如Java 中的“../Test?/sample*.txt”。尽管 Apache commons-io 的 WildcardFileFilter 可用,但其在相对目录路径中查找文件的实现可能会出现一些混乱。
使用 Apache Commons-IO
到利用 Apache commons-io 中的 FileUtils,可以使用以下代码片段:
File dir = new File("."); FileFilter fileFilter = new WildcardFileFilter("sample*.java"); File[] files = dir.listFiles(fileFilter);
此代码将返回当前目录中匹配文件的数组。
处理目录
在子目录中搜索文件,例如从目录中搜索“Test1”和“Test4”示例模式,可以添加一个额外的循环:
File[] dirs = new File(".").listFiles(new WildcardFileFilter("Test*.java"); for (int i=0; i<dirs.length; i++) { File dir = dirs[i]; if (dir.isDirectory()) { File[] files = dir.listFiles(new WildcardFileFilter("sample*.java")); } }
这将递归地查找并列出与指定匹配的文件通配符模式。
其他注意事项
问题中提到的另一种方法是检查 Apache Ant 的源代码,它使用通配符语法。然而,对于大多数用户来说,这可能不是最直接的解决方案。
此外,值得注意的是,Java 运行时环境 (JRE) 会自动解析命令行参数中的简单通配符,从而简化了基本场景的过程。
以上是如何使用 Apache Commons-IO 在 Java 中查找与通配符模式匹配的文件?的详细内容。更多信息请关注PHP中文网其他相关文章!