File 递归列出指定目录的目录结构
输出指定目录下的所有文件和目录(包括子目录),比如我要列出E:\1.Thread(下)
下的所有内容,并以目录结构展示:
目录E:\1.Thread(下)
下的内容:
目录E:\1.Thread(下)\assert
下的内容:
实现效果:
code:
@Test
public void test2() {
File file = new File("E:\\1.Thread(下)");
//输出当前目录名
System.out.println(file.getName());
select(file, 0);
}
/**
* @param file
* @param count 用来记录目录的层级,从1.Thread(下)开始,记0
*/
private void select(File file, int count) {
//listFiles():返回某个目录下所有文件和目录的绝对路径,返回File数组
File[] files = file.listFiles();
if (files != null && files.length > 0) {
//遍历
for (File f : files) {
//实现分级目录结构
for (int i = 0; i < count; i++) {
System.out.print(" ┆");
}
//同级标识
System.out.println(" ┆-" + f.getName());
//子目录,递归调用,层级+1
if (f.isDirectory()) {
select(f, count + 1);
}
}
}
}