递归<二> --- 遍历指定目录下所有文件

来源:互联网 发布:js加附近人脚本 编辑:程序博客网 时间:2024/06/04 19:21

1、递归定义
参考:http://blog.csdn.net/kyle0349/article/details/51836198
2、对于递归遍历文件夹目录下的文件思路:

 A、如果该文件目录下全是文件(非文件夹),那很理想,直接打印绝对路径(file.getAbsolutePath())就完成任务 B、重点在于如果该文件目录下有的是文件,有的是文件夹(子文件夹),然后子文件夹也存在相同问题,     判断是文件还是文件夹,或者可以认为:如果是文件就不是文件夹,或者:如果是文件夹,就不是文件         file.isFile()   /   file.isDirectory() C、判断完后,如果是文件,那么打印绝对路径(file.getAbsolutePath())就完成任务          如果不是文件(也就是文件夹)呢,就重新调用自身showAllFiles(File folder),因为这个方法就是用来对付文件夹的,

(脑补:只要遇到文件夹就双击进该文件夹,进行判断,是文件,输出,不是双击进去…重复…重复)

package cn.test;import java.io.File;/** * 递归遍历文件夹下所有文件 * @author admin * */public class Recursion2 {    static int count = 0 ;    public static void main(String[] args) {        //确定目标路径        File folder = new File("d:/");        if(!folder.exists() || !folder.isDirectory()){            System.out.println("文件夹路径错误,文件夹不存在 ,或者该路径不是一个合法的文件夹");        }else{            showAllFiles(folder);        }    }    private static void showAllFiles(File folder) {        File[] files = folder.listFiles();        for(File file:files){            if(file.isFile()){                count ++; //记录文件个数                System.out.println(file.getAbsolutePath());//输出文件的绝对路径:包含文件名                System.out.println("文件数:"+count);            }else{                try {                    showAllFiles(file);//如果是文件夹,则调用自身showAllFiles(File folder)来把该文件夹目录下文件显示出来                } catch (Exception e) {                    e.printStackTrace();                }            }        }    }}

这里写图片描述

0 0
原创粉丝点击