谢谢老师,听了老师的课程,受益匪浅。我有几点疑惑,遍历的时候为什么要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); } } }
我想问下楼主,如果是目录它怎么打印出文件夹的名字的额?
题主应该是对的
难道files!=null和files.length()>0不是一个意思吗
经过本人的测试,老师的确是打印不出空文件。通过测试之后,你只需把图中else去掉就能够打出代码
if (file.isDirectory() && file.listFiles().length > 0) {
// 递归
listDirectory(file);
}
按楼主增加的判断条件,才会打印空目录
for-each块里的file是一个File对象,这个对象有listFiles()方法?没报错?