FileFilter实例教程
题目:现在要求输入一个文件的目录,之后将里面所有的备份文件删除,备份文件都是以“.bak”或".BAK"结尾。
请查阅JDK,FileFilter接口和File类。
FileFilter是一个接口,实现里面的accept方法,包含要筛选的条件。然后这个接口的实例可以传入到File的listFiles(FileFilter ff)当中,从而返回已经过滤过的文件。
以下是一个实例:
package test; import java.io.File; import java.io.FileFilter; public class BakFileFilter implements FileFilter { @Override public boolean accept(File file) { //如果是目录的话,直接返回true 表示是满足条件的一情况 if(file.isDirectory()) return true; String name = file.getName(); return name.endsWith(".bak")||name.endsWith(".BAK"); } } class DeleteBak { public static void main(String[] args) { DeleteBak del = new DeleteBak(); del.listAndDelete(new File("d:/")); } private void listAndDelete(File file) { // File[] fs = file.listFiles(new BakFileFilter()); for(int i=0;i<fs.length;i++){ if(fs[i].isFile()){ System.out.println(fs[i].getAbsolutePath()); fs[i].delete(); }else{ listAndDelete(fs[i]); //递归去找目录的bak文件 } } } }