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文件
            }
        }
    }
}

 

posted @ 2014-04-17 12:55  精进中的昆杰  阅读(398)  评论(0编辑  收藏  举报