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

我觉得遍历不是很懂

import java.io.File;

public class Example1 {
	public static void main(String args[]) {
		Example1 example1 = new Example1();
		File file = new File("../Homework");
		example1.f(file, 1);

	}
//indent是缩进
	public void f(File file, int indent) {
		if (!file.exists())
			throw new IllegalArgumentException("文件" + file + "不存在");
		if (!file.isDirectory())
			throw new IllegalArgumentException("文件" + file + "不是目录");
		File[] files = file.listFiles();
		for (File fil : files) {
			for (int i = 0; i < indent; i++) {
				System.out.print("|-");
			}
			System.out.println(fil.getName());
			if (fil.isDirectory())
				f(fil, indent + 3);
		}
	}
}

看老师的为什么还要file!=null,我感觉既然已经存在File数组中,就不会不存在了,这时还包括文件,有子文件的文件夹,空文件夹的情况。这时不论是哪一种都先打印出名字就好了,然后是文件夹的在递归(这时不用管是不是空的)。不知道想的对不对。。

正在回答

2 回答

也会有这样的情况。该目录下什么都没有,那么这时返回的数组长度就是0。那就没有东西可以打印了啊。

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

空文件夹的长度为0,空文件夹再递归的时候,file[]数组长度为0,相当于一个File实例,不过是一个文件夹。先打印出名字,因为数组中没存放任何东西,就不会再进行递归了。

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

举报

0/150
提交
取消
文件传输基础——Java IO流
  • 参与学习       133630    人
  • 解答问题       1030    个

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

进入课程

我觉得遍历不是很懂

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