JAVA之File類 獲取一個目錄下的所有資料夾和檔案,包括子資料夾和子檔案
阿新 • • 發佈:2019-02-07
package ioTest.io3; import java.io.File; /* * 獲取一個目錄下的所有資料夾和檔案,包括子資料夾和子檔案 。 * 並將資料夾和檔名稱列印在控制檯上面。並且要顯示檔案目錄的層級 * 注:運用了遞迴的演算法。 */ public class FileDemo3 { public static void main(String[] args) { File dir=new File("F:\\黑馬學習日程\\"); //File dir=new File("F:\\"); //如果使用上述的碟符的根目錄,會出現java.lang.NullPointerException //為什麼? getAllFiles(dir,0);//0表示最頂層 } //獲取層級的方法 public static String getLevel(int level) { //A mutable sequence of characters. StringBuilder sb=new StringBuilder(); for(int l=0;l<level;l++) { sb.append("|--"); } return sb.toString(); } public static void getAllFiles(File dir,int level) { System.out.println(getLevel(level)+dir.getName()); level++; File[] files=dir.listFiles(); for(int i=0;i<files.length;i++) { if(files[i].isDirectory()) { //這裡面用了遞迴的演算法 getAllFiles(files[i],level); } else { System.out.println(getLevel(level)+files[i]); } } } }