递归方法遍历目录 且筛选打印出 D:\Eclipse 目录下的所有exe文件

import java.io.File;

public class TestFileDemo {

    public static void main(String[] args) {
        
        File dir = new File("D:\\Eclipse");// 快捷键 CTRL+Shift+O  导入包
        
        getAllDir(dir);        

    }
    
    //遍历目录
    public static void getAllDir(File dir) {    
        
        File[] fieArr = dir.listFiles(new DirFilter());//文件过滤  目录返回true进行再次遍历 不是目录 是文件则只返回 .exe文件
        
        for(File f: fieArr) {
            //判定路径是 目录路径 还是文件路径
            if(f.isDirectory()) {
                getAllDir(f); //递回调用
            }else {
                System.out.println(f);//打印筛选后各exe文件的 全路径
            }            
        }
        
    }

}

 

 

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

public class DirFilter implements FileFilter {

    @Override
    public boolean accept(File pathname) {
        if(pathname.isDirectory())
            return true;
        return pathname.getName().endsWith("exe");
    }

}