Java File中列出指定目錄中的所有檔案(包括子目錄中的檔案)
阿新 • • 發佈:2018-12-06
需求:
replace(" ", )對指定目錄中所有內容的列出(包括子目錄中的內容)
也可以理解為:深度遍歷
注意:如果使用的是listFiles(pathname)方法列出檔案和目錄,則不能之間整個磁碟的內容,而是列出某個檔案中的內容。
程式碼:
import java.io.File; public class Demo1 { public static void main(String[] args) { File dir=new File("d:\\html筆記");//不要遍歷d盤的根目錄,而是遍歷某個檔案 listAll(dir,0); } //level:層級關係 private static void listAll(File dir, int level) { //根目錄,前面不用列印空格 System.out.println(getspace(level)+dir.getName()); level=level+1;//每一次走一層,等級往下走一層 File[] files=dir.listFiles();//將dir下的資料夾封裝成一個一個的file物件 for(int i=0;i<files.length;i++){ if(files[i].isDirectory()){ //說明還是目錄,接著向下遍歷 listAll(files[i], level);//自己呼叫自己,為遞迴 }else{ //不是資料夾,直接打印出 System.out.println(getspace(level)+files[i].getName()); } } } //加空格的方法 private static String getspace(int level) { //拼接空格字串 StringBuilder sb=new StringBuilder(); sb.append("|--"); for(int i=0;i<level;i++){ sb.insert(0, "| "); } return sb.toString(); } }
執行結果