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

f这里的files != null代表什么?文件不为空?那么用file.exists不是更好吗?

File files[] = dir.listFiles();// 返回的是直接子目录(或者文件)的抽象

if (files != null && files.length > 0) {

for (File wenjian : files)

if (wenjian.isDirectory()) {

// 递归

listDirectory(wenjian);

} else {

System.out.println(wenjian);

}

}

}


提问者:福工刘德华 2017-11-22 14:31

个回答

  • 慕田峪3134475
    2017-11-22 16:23:43
    已采纳

    files是返回的File类型数组,file是数组中的元素

    需要先判断数组是否为空(files.length >0),而files != null只是更周全的写法,在这个示例里面其实是可以不用写的,因为上面已经判断了dir的存在

  • 丑丶小亚
    2018-02-08 14:45:10

    if (files != null && files.length > 0)

    这句判断完全可以不写,因为foreach的循环行为,内部已经判断了files的length为0,或者为null的情况,已经进行了排除。

    不过在别的情况下,使用对象还是要科学判断对象是否为null,这是一个编程好习惯。

  • 慕田峪3134475
    2017-11-23 10:45:13

    http://img.mukewang.com/5a1635060001854615920722.jpg

    红框中的dir这个File类型对象对应的是目录,因为这个dir在调用构造函数的时候传入的参数是某个目录的路径。

    File类型的对象还可以是具体的某个文件,这就需要在调用构造函数的时候传入的参数是具体文件的路径,比如

     File dir = new File("e:\\javaIO\\test.txt")