问答详情
源自:2-2 遍历目录

空文件夹没有打印出来

谢谢老师,听了老师的课程,受益匪浅。我有几点疑惑,遍历的时候为什么要files != null,可不可以直接files.length > 0呢?递归的时候,如果是空文件夹也会参加递归,并且递归到“if(files!=bull && files.length > 0 )”就结束了。我的代码如下:

        // 如果要遍历子目录下的内容,就要遍历File对象,做递归操作,File提供了直接返回File对象的API
        File [] files = dir.listFiles();
        if (files.length > 0) {
            for (File file : files) {
                if (file.isDirectory() && file.listFiles().length > 0) {
                    // 递归
                    listDirectory(file);
                } else {
                    System.out.println(file);
                }
            }
        }


提问者:李鬼989 2015-03-21 09:41

个回答

  • 如果繁星能来到我身边
    2016-05-17 11:24:21

    我想问下楼主,如果是目录它怎么打印出文件夹的名字的额?

  • 吴登广
    2015-08-11 17:13:18

    题主应该是对的

  • 我不要昵称
    2015-07-16 10:45:21

    难道files!=null和files.length()>0不是一个意思吗

  • 初级学习号
    2015-07-04 18:03:06

    经过本人的测试,老师的确是打印不出空文件。通过测试之后,你只需把图中else去掉就能够打出代码

  • oper
    2015-06-24 10:40:56

    if (file.isDirectory() && file.listFiles().length > 0) {

                        // 递归

                        listDirectory(file);

                    } 

    按楼主增加的判断条件,才会打印空目录

  • 仗剑闯江湖
    2015-03-21 10:42:30

    for-each块里的file是一个File对象,这个对象有listFiles()方法?没报错?