FileFilter 过滤文件

package Thread_01;

import java.io.File;
import java.io.IOException;

/**
 * @author ZziQon
 *
 */
public class main {
    public static void main(String[] args) throws IOException {
        File dir = new File("C:\\Users\\1\\Desktop\\.vs");
        getDirs(dir);
    }

    // 参数传递File类型的目录
    public static void getDirs(File dir) {
        // System.out.println(dir);
        // File[] files = dir.listFiles(new FileFilterImp1());// 传递过滤器对象
        // File[] files = dir.listFiles(new FileFilter() {//使用匿名内部类
        //
        // @Override
        // public boolean accept(File pathname) {
        // // TODO Auto-generated method stub
        // return pathname.isDirectory() ||
        // pathname.getName().toLowerCase().endsWith("json");
        // /*Filename使用
        // *return new
        // File(dir,name).isDirectory()||name.toLowerCase().endsWith(".json");
        // */
        // }
        // });
        // Lambada表达式
        File[] files = dir
                .listFiles((d, name) -> new File(d, name).isDirectory() || name.toLowerCase().endsWith(".json"));
        /*
         * 1.ListFiles会先把传递的目录进行遍历后的结果封装为File对象
         * 2.之后若返回True,则会把这些对象一一传递给过滤器accept方法的参数pathname
         */
        for (File f : files) {
            if (f.isDirectory()) {// 判断是否为文件夹
                getDirs(f);
            } else {
                System.out.println(f);
            }
        }
    }
}

 

posted @ 2022-08-15 16:43  KeepSmiling_me  阅读(33)  评论(0)    收藏  举报