Java递归遍历目录结构和树状展现

递归结构包括两个部分:

1、定义递归头:即“什么时候不调用自身方法”。如果没有头,将陷入死循环,也就是递归的结束条件。

2、递归体:也就是什么时候需要调用自身方法。

应用:递归遍历目录结构

package 递归遍历目录结构;

import java.io.File;
import java.io.IOException;

public class TestFiles {
    public static void main(String[] args) throws IOException {
        File f = new File("d:/电影");

        //查看项目的路径
        System.out.println(System.getProperty("user.dir"));

        //如果没有的话就在指定位置创建一个
//        f.createNewFile();
        printFile(f,0);
    }

    /**
     * 打印文件信息
     * @param file 文件名称
     * @param level 层次数(实际就是第几次递归调用)
     **/
    static void printFile(File file,int level){
        //1、输出层次数
        for(int i = 0;i < level;i++){
            System.out.print("-");
        }
        //2、输出文件名
        System.out.println(file.getName());

        //3、如果file是目录,则获取子文件列表,并对每个子文件进行相同的操作
        if(file.isDirectory()){
            File[] files = file.listFiles();
            for(File file1:files){
                //4、递归调用方法,记得要+1
                printFile(file1,level+1);
            }
        }
    }
}

输出结果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章