有没有办法组合 java.io 的多个文件过滤器?
FileFilter wildcardFileFilter = new WildcardFileFilter("*.yml");
FileFilter isFileFileFilter = FileFileFilter.FILE;
File[] listFiles = dir.listFiles(???);
怎么样...
FileFilter combinedFilter = f -> wildcardFileFilter.accept(f) && isFileFileFilter.accept(f);
如果你想让它流利,那么请记住,FileFilter
本质上是一个Predicate<File>
,它提供了一些组合东西的方法......
Predicate<File> wildcardFileFilter = new WildcardFileFilter("*.jml")::accept;
Predicate<File> isFileFileFilter = FileFileFilter.FILE::accept;
FileFilter combinedFilter = wildcardFileFilter.and(isFileFileFilter)::test;