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("\t");
}
}
private static int getTabCount(File file){
String absPath = file.getAbsolutePath();//获取文件的绝对路经
return absPath.split("\\\\").length; //四个反斜杠表示一个/,即获取取文件之前的总斜杠个数,返回值为tabCount
}
}