1. 引言
在本快速教程中,我们将看到使用核心Java和外部库来搜索目录(包括子目录)中匹配特定扩展名的文件的一些替代方案。我们将从简单的数组和列表到流和其他更新的方法。
2. 设置我们的过滤器
由于我们需要按扩展名过滤文件,让我们从简单的_Predicate_实现开始。 我们需要一点输入清理,以确保我们匹配大多数用例,比如接受以点开头或不以点开头的扩展名:
public class MatchExtensionPredicate implements Predicate```````````<Path>``````````` {
private final String extension;
public MatchExtensionPredicate(String extension) {
if (!extension.startsWith(".")) {
extension = "." + extension;
}
this.extension = extension.toLowerCase();
}
@Override
public boolean test(Path path) {
if (path == null) {
return false;
}
return path.getFileName()
.toString()
.toLowerCase()
.endsWith(extension);
}
}
大约 5 分钟