空文件夹没有打印出来

来源:2-2 遍历目录

李鬼989

2015-03-21 09:41

谢谢老师,听了老师的课程,受益匪浅。我有几点疑惑,遍历的时候为什么要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);
                }
            }
        }


写回答 关注

6回答

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

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

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

    题主应该是对的

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

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

    激流勇进__ 回复_神人A

    空目录为什么length还会 >0 呢?

    2016-02-17 14:50:41

    共 2 条回复 >

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

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

    激流勇进__ 回复初级学习号

    去掉后,我怎么没输出来

    2016-02-17 14:54:22

    共 2 条回复 >

  • 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()方法?没报错?

    仗剑闯江湖 回复李鬼989

    对,老师的代码不会打印空文件夹。

    2015-03-22 21:56:41

    共 4 条回复 >

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133754 学习 · 1030 问题

查看课程

相似问题