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();
}
}