我们在编码时,经常有这样的需求:
Input:一个文件夹
Output:该文件夹下所有某种或者某几种文件格式的文件
对于这样的需求,我们一般使用FileFilter来实现,具体见下面代码示例:
import java.io.File;
import java.io.FileFilter;
public class FileFilterTest {
public static void main(String[] args) {
File file = new File("C:\\Users\\LiYuming\\Desktop\\新建文件夹");
FileFilter filter = new FileFilter() {
@Override
public boolean accept(File file) {
if(file.isDirectory()) {
return true;
} else {
if(file.getName().endsWith(".txt")) {
return true;
} else {
return false;
}
}
}
};
getNeedFile(file, filter);
}
private static void getNeedFile(File file, FileFilter filter) {
File[] files = file.listFiles(filter);
for(File tmp : files) {
if(tmp.isDirectory()) {
getNeedFile(tmp, filter);
} else {
System.out.println(tmp.getName());
}
}
}
}
输出: