小编典典

如何在 Java 中查找与通配符字符串匹配的文件?

all

这应该很简单。如果我有这样的字符串:

../Test?/sample*.txt

那么获取与此模式匹配的文件列表的普遍接受的方法是什么?(例如它应该匹配../Test1/sample22b.txtand../Test4/sample- spiffy.txt但不匹配../Test3/sample2.blahor ../Test44/sample2.txt

我看了看,org.apache.commons.io.filefilter.WildcardFileFilter它似乎是正确的野兽,但我不确定如何使用它在相对目录路径中查找文件。

我想我可以查看 ant 的源代码,因为它使用通配符语法,但我必须在这里遗漏一些非常明显的东西。

编辑 :上面的例子只是一个示例案例。我正在寻找在运行时解析包含通配符的一般路径的方法。我根据 mmyers
的建议想出了如何做到这一点,但这有点烦人。更不用说java JRE似乎从单个参数自动解析main(String
[]参数)中的简单通配符以“节省”我的时间和麻烦......我很高兴我没有非文件参数混合。)


阅读 73

收藏
2022-08-02

共1个答案

小编典典

考虑来自 Apache Ant 的 DirectoryScanner:

DirectoryScanner scanner = new DirectoryScanner();
scanner.setIncludes(new String[]{"**/*.java"});
scanner.setBasedir("C:/Temp");
scanner.setCaseSensitive(false);
scanner.scan();
String[] files = scanner.getIncludedFiles();

您需要参考 ant.jar(ant 1.7.1 约为 1.3 MB)。

2022-08-02