请利用File对象列出指定目录下的所有子目录和文件,并按层次打印。
例如,输出:
package com.itranswarp.learnjava;
import java.io.File;
import java.io.IOException;
/**
* Learn Java from https://www.liaoxuefeng.com/
*
* @author liaoxuefeng
*/
public class Main {
public static int n = 0;
public static void main(String[] args) throws IOException {
File currentDir = new File(".");
String kongge = "";
listDir(currentDir.getCanonicalFile(), kongge);
}
static void listDir(File dir, String kongge) {
// TODO: 递归打印所有文件和子文件夹的内容
File[] fs = dir.listFiles();
StringBuilder sb = new StringBuilder(1024);
if (fs != null) {
for (File f : fs) {
if (f.isDirectory()) {
System.out.println(kongge + f.getName() + "\\");
listDir(f, kongge+" ");
} else if (f.isFile()) {
System.out.println(kongge + f.getName());
}
}
}
}
}
// 递归函数listDir
//
格式方面需要多加注意