马士兵老师有云:不要想着一下子就将程序代码按照给定的要求写出来,先写出一个简单的程序,之后将这个在进行修改 ,直到程序运行结构符合要求。
废话不多说,接下来就看我的题目要求和代码吧,哈哈。一上来就直接写代码,不去先说一大堆理论,可是马士兵老师自2016年12月重出江湖,再战风云,坐在讲座前讲课的一大特色。
题目:指定一目录,将该目录下的文件及其对应的子文件、子文件夹以树形结构打印出来。
代码如下:
package Test_02;
import java.io.File;
import java.util.Arrays;
//指定一目录,将该目录下的文件及其对应的子文件、子文件夹以树形结构打印出来。
public class T04_File {
public static void main(String[] args) {
File file = new File("D:/Test");
System.out.println(file.isDirectory()); //判断是否为一个目录
System.out.println(file.isFile()); //判断是否为一个标准的文件
System.out.println("------------------------------");
File[] files = file.listFiles(); //写一个Person类,测试Person[]数组???????
System.out.println(Arrays.toString(files));
System.out.println("------------------------------");
System.out.println(file.getName());
tree(file, 1);
}
private static void tree(File file, int level) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < level; i++) builder.append("----");
File[] childs = file.listFiles(); //File类中,listFiles()方法的作用????
for (File child : childs) {
System.out.println(builder + child.getName());
if (child.isDirectory()) {
tree(child, level + 1);
} //if (child.isDirectory())
} //for (File child : childs)
} //private static void tree(File file, int level)
}
程序运行结果: