递归测试
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class FilesDemo {
private static final String FILE_PATH = "./";
private static List<Map<String, String>> FileList;
public static void main(String[] args) {
listFiles(new File(FILE_PATH), 1);
// for(Map<String,String> item:FileList){
// System.out.println("{name:"+item.get("name")+",level:"+item.get("level")+"}");
// }
}
public static void listFiles(File file, int level) {
FileList = new ArrayList<>();
Map<String, String> item;
File[] files = file.listFiles();
if (file.list().length != 0) {
for (File fileTemp : files) {
String fileName = fileTemp.getName();
System.out.println(getLevelPrefix(level) + fileName);
if (fileTemp.isDirectory() && fileTemp.list().length > 0) {
listFiles(fileTemp, level + 1);
} else {
item = new HashMap<String, String>();
item.put("name", fileTemp.getName());
item.put("level", String.valueOf(level));
FileList.add(item);
}
}
} else {
System.out.println(getLevelPrefix(level) + file.getName());
}
}
public static String getLevelPrefix(int level) {
StringBuilder sb = new StringBuilder();
for (int i = 1; i < level; i++) {
sb.append(" ");
}
sb.append("|--");
return sb.toString();
}
}