Java遍歷輸出指定目錄、樹形結(jié)構(gòu)所有文件包括子目錄下的文件
更新時間:2015年07月31日 16:08:58 作者:jenson138
這篇文章主要介紹了Java遍歷輸出指定目錄、樹形結(jié)構(gòu)下的所有文件包括子目錄中的文件,需要的朋友可以參考下
下面通過一段代碼介紹下Java輸出指定目錄、樹形結(jié)構(gòu)下的所有文件包括子目錄中的文件的方法,并附有效果圖。
import java.io.File; public class ReadDirectory { // 文件所在的層數(shù) 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對象數(shù)組 File[] list = file.listFiles(); // 遍歷file數(shù)組 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); } }
輸出結(jié)果如下:
以上就是本文的全部內(nèi)容,希望大家喜歡。
相關(guān)文章
Java 中解決Unsupported major.minor version 51.0的問題
本文主要介紹解決Unsupported major.minor version 51.0的問題, 這里給大家整理了詳細資料,有需要的小伙伴可以參考下2016-08-08MyBatis在insert插入操作時返回主鍵ID的配置(推薦)
這篇文章主要介紹了MyBatis在insert插入操作時返回主鍵ID的配置的相關(guān)資料,需要的朋友可以參考下2017-10-10java使用TimerTask定時器獲取指定網(wǎng)絡數(shù)據(jù)
java.util.Timer定時器,實際上是個線程,定時調(diào)度所擁有的TimerTasks。一個TimerTask實際上就是一個擁有run方法的類,需要定時執(zhí)行的代碼放到run方法體內(nèi),TimerTask一般是以匿名類的方式創(chuàng)建,下面的就用示例來學習他的使用方法2014-01-01