深度遍历:递归的应用

来源:互联网 发布:电脑怎么改网络ip地址 编辑:程序博客网 时间:2024/05/16 12:17

/*
*需求:对指定目录进行所有内容的列出(包含子目录中的内容)
*也可以理解为深度遍历
*分析:listFiles方法只会列出当前目录下的所有文件
*但是如果需要访问当前目录下的文件下的文件,
* 那还要对listFiles方法
*进一步操作
*
*/

public class FileTest {public static void main(String[] args) {    //1,建立当前文件    File file = new File("demodir");    //2,需要进行扩展,用函数封装起来    enlistAll(file,0);}public static void listAll(File file) {    /*     * listFiles方法返回一个File对象数组,     * 将当前目录下所有文件封装成file对象     * 这样不仅仅局限于对文件名的操作。     */    /*     * 3,分析过程,思考过程     *      */    /*File[] dir = file.listFiles();      for(File name:dir){        if(name.isDirectory()){//判断是否是目录            //如果是目录,就继续遍历            File[] dir2 = name.listFiles();            for(File name2:dir2){            if(name.isDirectory()){.....};             * 写到这发现端倪了,如果还是目录还要继续遍历             * 我们发现,我们再重复调用这个函数,             * 想到要用到递归!            }        }        //无论是否是目录都要打印出文件名        System.out.println(name);    }*/}/* *重新建立这个函数,加个参数level 用来表示层级关系  */public static void enlistAll(File file,int level) {    //每调用一次就打印一次这个文件 getspace方法是为了区别层级而设的    System.out.println(getSpace(level)+file.getName());    level++;    File[] dir = file.listFiles();    for(File name:dir){        //判断是否是目录,是就重复进行,调用当前函数(递归)        if(name.isDirectory()){            enlistAll(name,level);        }else{            System.out.println(getSpace(level)+name.getName());        }    }}public static String getSpace(int level ) {    StringBuilder sb = new StringBuilder();    sb.append("|----");    for(int i = 0;i<level;i++){        sb.insert(0,"   ");    }    return sb.toString();}}

打印效果

这里写图片描述

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一岁突然不吃饭怎么办 母乳不够吃宝宝不吃奶粉怎么办 八个月不吃辅食怎么办 孩子长得太快怎么办 反复发烧到39度怎么办 儿童发烧到39度怎么办 7岁儿童发烧40度怎么办 7岁反复发烧39度怎么办 宝宝烧到39.5度怎么办 3岁儿童发烧39度怎么办 孩子发高烧怎么办39度5 3岁宝宝不吃水果怎么办 2岁宝宝不吃水果怎么办 4岁宝宝不吃水果怎么办 过早竖抱婴儿了怎么办 3个月宝宝认生怎么办 10天婴儿不拉屎怎么办 3个月宝宝不吃奶粉怎么办 婴儿吃青菜吃多怎么办 2月宝宝消化不好怎么办 吃母乳的宝宝便秘怎么办 婴儿拉肚子怎么办大便绿色的 10个月宝宝睡眠不好怎么办 婴幼儿消化不良引起的腹泻怎么办 小孩晚上睡觉不盖被子怎么办 镜子对着房间门怎么办 高血压引起的眼底出血怎么办 墙砖颜色选深了怎么办 墙砖颜色太深怎么办 30岁了没有朋友怎么办 产检宝宝腿短怎么办 2岁宝宝不学说话怎么办 4岁了还不会说话怎么办 两周岁还不说话怎么办 2岁了不会说话怎么办 一岁宝宝蛀牙了怎么办 分手了想联系他怎么办 和婆家人闹翻了怎么办 2岁宝宝不好断奶怎么办 2岁宝宝断奶哭闹怎么办 脑子感觉变笨了怎么办