打印格式类似
java
com
lwm
log4j2demo
log4j2demo
Log4j2demoApplication.java
ServletInitializer.java
test
Log4j2Test.java
resources
application.properties
log4j2.txt
log4j2.xml
static
test.xml
templates
demo1
demo1.xml
title
title.java
demo2
demo2.yaml
templates.properties
Zip.xml
网上很多教你怎么用递归遍历文件夹,但是并没有达到我想要的上面的效果,下面是实现代码,遍历文件夹路径下的所有文件和文件夹。
@Test
public void testA(){
File file = new File("文件夹路径");
File[] files = file.listFiles();
if (files != null) {
//开始遍历文件夹,从0个空格开始(可以理解为当前文件夹位置,用于标识)
traverseFolders(files, 0);
}
}
public void traverseFolders(File[] files, int indexNum) {//
//indexNum递归中会被修改,所以在每次遍历时,需要定位当前文件夹位置
int index = indexNum;
//遍历文件夹
for (File file : files) {
indexNum = index;
//当前文件为文件夹时
if (file.isDirectory()) {
//输出当前文件夹名称
System.out.println(handlingSpaces(indexNum) + file.getName());
//获得该文件夹下的所有文件以及文件夹
File[] files1 = file.listFiles();
if (files1 != null) {
indexNum += 1;
traverseFolders(files1, indexNum);
}
} else {
System.out.println(handlingSpaces(indexNum) + file.getName());
}
}
}
public StringBuilder handlingSpaces(int indexNum) {//
StringBuilder stringBuilder = new StringBuilder();
if (indexNum > 0) {
for (int i = 0; i < indexNum; i++) {
stringBuilder.append(" ");
}
}
return stringBuilder;
}