下面通過一段代碼介紹下Java輸出指定目錄、樹形結構下的所有文件包括子目錄中的文件的方法,並附有效果圖。
import java.io.File; public class ReadDirectory { // 文件所在的層數private int fileLevel; /** * 生成輸出格式* @param name 輸出的文件名或目錄名* @param level 輸出的文件名或者目錄名所在的層次* @return 輸出的字符串*/ public String createPrintStr(String name, int level) { // 輸出的前綴String printStr = ""; // 按層次進行縮進for (int i = ; i < level; i ++) { printStr = printStr + " "; } printStr = printStr + "- " + name; return printStr; } /** * 輸出初始給定的目錄* @param dirPath 給定的目錄*/ public void printDir(String dirPath){ // 將給定的目錄進行分割String[] dirNameList = dirPath.split("////"); // 設定文件level的base fileLevel = dirNameList.length; // 按格式輸出for (int i = ; i < dirNameList.length; i ++) { System.out.println(createPrintStr(dirNameList[i], i)); } } /** * 輸出給定目錄下的文件,包括子目錄中的文件* @param dirPath 給定的目錄*/ public void readFile(String dirPath) { // 建立當前目錄中文件的File對象File file = new File(dirPath); // 取得代表目錄中所有文件的File對像數組File[] list = file.listFiles(); // 遍歷file數組for (int i = ; i < list.length; i++) { if (list.isDirectory()) { System.out.println (createPrintStr(list.getName(), fileLevel)); fileLevel ++; // 遞歸子目錄readFile(list.getPath()); fileLevel --; } else { System.out.println(createPrintStr(list.getName( ), fileLevel)); } } } public static void main(String[] args) { ReadDirectory rd = new ReadDirectory(); String dirPath = "D://有道詞典"; rd.printDir(dirPath); rd. readFile(dirPath); } }輸出結果如下:
以上就是本文的全部內容,希望大家喜歡。