Java通配符扩展

Java通配符扩展,java,apache-commons-io,Java,Apache Commons Io,我需要展开文件路径中的通配符,以获得与文件路径匹配的文件列表。 我使用了apache的commons io: protected File[] wildcardResolution(File f) { File dir = f.getParentFile(); FileFilter fileFilter = new WildcardFileFilter(f.getName()); return dir.listFiles(fileFilter); } 问题是它只扩展了*

我需要展开文件路径中的通配符,以获得与文件路径匹配的文件列表。
我使用了apache的commons io:

protected File[] wildcardResolution(File f) {
    File dir = f.getParentFile();
    FileFilter fileFilter = new WildcardFileFilter(f.getName());
    return dir.listFiles(fileFilter);
}
问题是它只扩展了
*
通配符,而不扩展
***
通配符,因此: /usr/***.xml与/usr的任何子文件夹中扩展名为.xml的所有文件都不匹配

如何使通配符扩展正常工作?

谢谢

问题在于它不是递归列出的

你可以用。它对文件使用一种模式,对目录使用一种模式。这与一个全局表达式不完全相同:

Iterator iterateFiles = FileUtils.iterateFiles(
  new File("."), new WildcardFileFilter("*.xml"), TrueFileFilter.INSTANCE);
while(iterateFiles.hasNext()){
    System.out.println(iterateFiles.next());
}