递归加筛选,查找所有某路径下,所有以 .java 结尾的文件

实现类

package Recursion;

import java.io.File;
import java.io.FileFilter;

public class FileFilterImpl implements FileFilter {

    /**
     * 过滤的规则:
     * 在 accept 方法中,判断 File 类对象是否是以.java 结尾
     * 是 就返回 true
     * 如果 此 file 是一个文件夹 返回 true
     * @param pathname 文件名
     * @return 布尔
     */
    @Override
    public boolean accept(File pathname) {
        // 方法一
        // true 所有的情况都满足
        // false 都不满足
        //
        // return true;

        // 方法二
        // 在目录下就遍历完了
        /*if (pathname.getPath().toLowerCase().endsWith(".java")) {
            return true;
        } else {
            return false;
        }*/

        // 修正后,方法二
        if(pathname.isDirectory()){
            return true;
        }

        return pathname.getPath().toLowerCase().endsWith(".java");

    }
}

主启动类

package Recursion;

import java.io.File;

public class FileFilter6 {

    public static void main(String[] args) {


        //
        File file = new File("D:\\Code\\xx\\练习题");
        isJava(file);

    }

    // 定义一个方法遍历,所有以 .java 结尾的文件
    public static void isJava(File dir) {

        // 参数 目录
        // File[] files = dir.listFiles();


        // 增加了过滤器
        FileFilterImpl filter = new FileFilterImpl();
        File[] files = dir.listFiles(filter);

        if (files != null) {
            System.out.println("满足条件的文件个数 : "+files.length);
        }

        assert files != null;

        for (File f : files) {
            // 判断 f 是否目录
            if (f.isDirectory()) {
                isJava(f);
            } else {
                    System.out.println(f);        
            }
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值