我觉得遍历不是很懂

来源:2-2 遍历目录

如果繁星能来到我身边

2016-05-17 11:59

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回答

  • helloworld2008
    2016-07-17 18:27:10

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

  • 如果繁星能来到我身边
    2016-05-17 12:25:25

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

文件传输基础——Java IO流

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

133754 学习 · 1030 问题

查看课程

相似问题