import java.io.File; public class Demo02 { public static void main(String[]args){ File file = new File("D:/爱学习"); initTab = getTabCount(file); //是当前的tabCount的上一个tabCount数。 showFileInfo(file); } private static int initTab = 0;//开始的Tab数默认为0 //展示FIle信息 private static void showFileInfo(File file){ String fileName = file.getName(); printTab(getTabCount(file)); System.out.println(fileName); if(file.isDirectory()){ File[]childFiles = file.listFiles(); for(int i = 0;i <childFiles.length;i++){ File childFile = childFiles[i]; //for循环取出所有子文件 showFileInfo(childFile); } } } //打印file前边的tab private static void printTab(int tabCount){ for(int i = 0;i < tabCount-initTab;i++){ //用当前文件的tabCount数减去其之前的tabCount数,即还需打印的Tab数。 System.out.print(" "); } } private static int getTabCount(File file){ String absPath = file.getAbsolutePath();//获取文件的绝对路经 return absPath.split("\\").length; //四个反斜杠表示一个/,即获取取文件之前的总斜杠个数,返回值为tabCount } }