package cn.bruce.file; import java.io.File; import java.io.FileFilter; //对目录下的内容全遍历,找出所有.java结尾的文件 public class FileDemo4 { public static void main(String[] args) { fun(new File("E:\b")); } public static void fun(File dir) { // System.out.println(dir); // 调用listFiles方法对目录进行遍历 File[] filearr = dir.listFiles(new Myjavafilter()); for (File file : filearr) { if (file.isDirectory()) { fun(file);// 判断如果是文件夹就继续调用遍历目录下内容的方法,形成递归 } else { System.out.println(file);// 不是的话就打印出来文件路径名字 } } } } // 自定义过滤器,实现filefilter接口,重写抽象方法 class Myjavafilter implements FileFilter { public boolean accept(File pathname) { // pathname接受到的是传入的全路径 // 然后取的文件的结尾后缀pathname.getname(); if (pathname.isDirectory()) { return true;// 目录的话不去判断后缀 } // 判断字符串是不是.java结尾,不区分大小写 return pathname.getName().toLowerCase().endsWith(".java"); } }