File files[] = dir.listFiles();// 返回的是直接子目录(或者文件)的抽象
if (files != null && files.length > 0) {
for (File wenjian : files)
if (wenjian.isDirectory()) {
// 递归
listDirectory(wenjian);
} else {
System.out.println(wenjian);
}
}
}
files是返回的File类型数组,file是数组中的元素
需要先判断数组是否为空(files.length >0),而files != null只是更周全的写法,在这个示例里面其实是可以不用写的,因为上面已经判断了dir的存在
if (files != null && files.length > 0)
这句判断完全可以不写,因为foreach的循环行为,内部已经判断了files的length为0,或者为null的情况,已经进行了排除。
不过在别的情况下,使用对象还是要科学判断对象是否为null,这是一个编程好习惯。
红框中的dir这个File类型对象对应的是目录,因为这个dir在调用构造函数的时候传入的参数是某个目录的路径。
File类型的对象还可以是具体的某个文件,这就需要在调用构造函数的时候传入的参数是具体文件的路径,比如
File dir = new File("e:\\javaIO\\test.txt")