import java.io.File;
public class test04_02 {
//设置level用来表示当前目录相对于给定目录的深度,用来打印Tab占位符
private int level = 0;
public void printDir(File file){
printDir1(file, level);
}
public void printDir1(File file,int level){
for(int i=0;i<level;i++){
System.out.print('\t');
}
if(file.isDirectory()){
System.out.println(getPath(file));
String[] strL = file.list();//获取目录下所有文件列表
for(int i = 0; i<strL.length;i++){
//递归的调用自身,同时将level参数递增用来打印Tab占位符
printDir1(new File(file.getPath() + "\\" + strL[i]),level+1);
}
}else{//若是单独文件,则直接打印
System.out.println(getPath(file));
}
//System.out.println(level);
}
//将文件名称 以 “\\”符号分割,取其最后的一项,如D\\360--->360
public String getPath(File mFile){
String fullPath = mFile.getPath();
String[] str = fullPath.split("\\\\");
return str[str.length - 1];
}
public static void main(String[] args){
test04_02 demo = new test04_02();
File newfile = new File("D:\\test");
demo.printDir(newfile);
}
}
结果: