Java遍歷輸入指定目次、樹形構造一切文件包含子目次下的文件。本站提示廣大學習愛好者:(Java遍歷輸入指定目次、樹形構造一切文件包含子目次下的文件)文章只能為提供參考,不一定能成為您想要的結果。以下是Java遍歷輸入指定目次、樹形構造一切文件包含子目次下的文件正文
上面經由過程一段代碼引見下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); } }
輸入成果以下:
以上就是本文的全體內容,願望年夜家愛好。