java – 有没有更好的方式来做多个ext的文件过滤器?
发布时间:2020-12-15 00:26:37 所属栏目:Java 来源:网络整理
导读:File files[] = rootDir.listFiles(new FileFilter() { public boolean accept(File file) { if (file.isDirectory()) return true; String name = file.getName().toLowerCase(); if (name.endsWith(".zip") || name.endsWith(".jar") || name.endsWith(".z
File files[] = rootDir.listFiles(new FileFilter() { public boolean accept(File file) { if (file.isDirectory()) return true; String name = file.getName().toLowerCase(); if (name.endsWith(".zip") || name.endsWith(".jar") || name.endsWith(".z") || name.endsWith(".gz") || name.endsWith(".tar") || name.endsWith(".bz2") || name.endsWith(".bz")) return true; return false; } }); 你可以看到,代码是脏的“||” 你知道如何使它更好吗? 解决方法
使用Java 6或更高版本,这对于
FileNameExtensionFilter 来说是一个完美的例子,除了它扩展javax.swing.filechooser.FileFilter而不是实现java.io.FileFilter.
但是为它写一个包装是微不足道的: File[] files = rootDir.listFiles(new FileFilter() { private final FileNameExtensionFilter filter = new FileNameExtensionFilter("Compressed files","zip","jar","z","gz","tar","bz2","bz"); public boolean accept(File file) { return filter.accept(file); } }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |