Test01:
public class FileTest {
/**
* @param args
*/
public static void main(String[] args) {
/*
* 需求:列出指定目录下所有内容,包含着子目录中的内容。
*/
File dir = new File("d:\\myclass");
listAll(dir,0);
}
public static void listAll(File dir,int level){
System.out.println(getSpace(level)+dir);//输出 层级+目录
level++;
//level表示层级,为了让结果好看一些,我们不能在方法里面定义这个层级,因为下面采用了递归,每调用一次,方法就会进栈,
//每进栈一次就会重新定义一个level,所以为了记录住这个level,我们在方法参数列表中定义,下次调用该方法时,就会进行累加
File[] files = dir.listFiles();
for(File file : files){
if(file.isDirectory()){
listAll(file,level);//递归。
}
else
System.out.println(getSpace(level)+file);//输出 层级+文件
}
}
private static String getSpace(int level) {
StringBuilder sb = new StringBuilder();
for(int x=0; x<level; x++){//层级是几层就返回几个“|--”
sb.append("|--");
}
return sb.toString();
}
}