为了账号安全,请及时绑定邮箱和手机立即绑定

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);

}

}

}


正在回答

3 回答

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

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

0 回复 有任何疑惑可以回复我~
#1

福工刘德华 提问者

那上面那个dir也是file类型的代表什么呢?
2017-11-22 回复 有任何疑惑可以回复我~
#2

慕田峪3134475

很抱歉,​我重新看了下视频内容,发现之前我的说法是错误的。files != null 这个判断不能少
2017-11-23 回复 有任何疑惑可以回复我~

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

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

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

0 回复 有任何疑惑可以回复我~
#1

慕姐936777

你定义一个为null的数组试试再说
2018-04-14 回复 有任何疑惑可以回复我~
#2

丑丶小亚 回复 慕姐936777

这就有点较之了,我针对本实例进行的这样说明,对于本实例来说只有存在dir或者不存在dir的情况,不存在向上抛出异常,那你下面的判断排除行为,有什么意义?存在就更不可能有null数组的情况。代码是死的,人的活的。
2018-04-17 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//5a1635060001854615920722.jpg

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

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

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信