黑马程序员技术交流社区

标题: 获取目录下所有的文件名称是.java(包含子文件夹),两种方法 [打印本页]

作者: 驰骋向前    时间: 2016-12-6 00:11
标题: 获取目录下所有的文件名称是.java(包含子文件夹),两种方法
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;

/*
* 当前目录 "D:\\java\\测试"   
*   目录下所有的文件名称是.java(包含子文件夹)
*   
*     分析:  
*       1:指定要遍历的文件夹  封装 成File对象 File dir
*       2:写一个方法  传递  目录  ,将目录下指定的文件  输出来
*         printDir(dir);  写一个方法  遍历 该目录下的所有的文件和文件夹  拿到.java结尾的
*         2.1:获取dir目录下所有的文件与文件夹
*         2.2:通过遍历Files数组 得到每一个文件对象
*/
public class fileFF {
        public static void main(String[] args) {
                File f = new File("D:\\java\\测试" );
                getFF1(f);
                System.out.println("----------------------------------");
                getFF2(f);
        }
        //方法一:普通方法(建议使用)
        private static void getFF1(File f) {
                //數組接收
                File[] fs = f.listFiles();
                //判斷是不是文件,再判斷是不是.txt結尾
                for (File file : fs) {
                        if(file.isFile()){
                                if(file.getName().endsWith(".txt")){
                                        System.out.println(file);
                                }
                        }else{
                                getFF1(file);
                        }
                }
        }
        //方法二:过滤器(了解就行)
        private static void getFF2(File f) {
                File[] fs = f.listFiles(new myfilter());
                for (File file : fs) {
                        System.out.println(file);
                }
        }  
}
  class myfilter implements FileFilter{
        public boolean accept(File pathname) {
                /*//如果 是文件   
            //是文件之后 还得是 以.java结尾 才可以  才能返回true
        if(pathname.isFile()){
                if(pathname.getName().endsWith(".java")){
                        return true;
                }else{
                        return false;
                }
        }else{
                return false;
        }
         */               
           if(pathname.isDirectory()){
                        return false;       
                }
                return pathname.getName().endsWith(".txt");
        }       
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2