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());
}