Java遍歷輸出指定目錄、樹(shù)形結(jié)構(gòu)所有文件包括子目錄下的文件
下面通過(guò)一段代碼介紹下Java輸出指定目錄、樹(shù)形結(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 = ""; // 按層次進(jìn)行縮進(jìn) for (int i = ; i < level; i ++) { printStr = printStr + " "; } printStr = printStr + "- " + name; return printStr; } /** * 輸出初始給定的目錄 * @param dirPath 給定的目錄 */ public void printDir(String dirPath){ // 將給定的目錄進(jìn)行分割 String[] dirNameList = dirPath.split("\\\\"); // 設(shè)定文件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) { // 建立當(dāng)前目錄中文件的File對(duì)象 File file = new File(dirPath); // 取得代表目錄中所有文件的File對(duì)象數(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é)果如下:
以上就是本文的全部?jī)?nèi)容,希望大家喜歡。
相關(guān)文章
java中DateUtils時(shí)間工具類(lèi)詳解
這篇文章主要為大家詳細(xì)介紹了java中DateUtils時(shí)間工具類(lèi),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12spring boot請(qǐng)求異常處理并返回對(duì)應(yīng)的html頁(yè)面
這篇文章主要介紹了spring boot處理請(qǐng)求異常并返回對(duì)應(yīng)的html頁(yè)面,包括404異常處理和500異常處理,需要的朋友可以參考下2017-07-07Java 中解決Unsupported major.minor version 51.0的問(wèn)題
本文主要介紹解決Unsupported major.minor version 51.0的問(wèn)題, 這里給大家整理了詳細(xì)資料,有需要的小伙伴可以參考下2016-08-08關(guān)于Java的對(duì)象序列化流和反序列化流詳細(xì)解讀
這篇文章主要介紹了關(guān)于Java的對(duì)象序列化流和反序列化流,對(duì)象序列化:就是將對(duì)象保存到磁盤(pán)中,或者在網(wǎng)絡(luò)中傳輸對(duì)象,反之,自己序列還可以從文件中讀取回來(lái),重構(gòu)對(duì)象,對(duì)它進(jìn)行反序列化,需要的朋友可以參考下2023-05-05MyBatis在insert插入操作時(shí)返回主鍵ID的配置(推薦)
這篇文章主要介紹了MyBatis在insert插入操作時(shí)返回主鍵ID的配置的相關(guān)資料,需要的朋友可以參考下2017-10-10java使用TimerTask定時(shí)器獲取指定網(wǎng)絡(luò)數(shù)據(jù)
java.util.Timer定時(shí)器,實(shí)際上是個(gè)線(xiàn)程,定時(shí)調(diào)度所擁有的TimerTasks。一個(gè)TimerTask實(shí)際上就是一個(gè)擁有run方法的類(lèi),需要定時(shí)執(zhí)行的代碼放到run方法體內(nèi),TimerTask一般是以匿名類(lèi)的方式創(chuàng)建,下面的就用示例來(lái)學(xué)習(xí)他的使用方法2014-01-01詳解Java8函數(shù)式編程之收集器的應(yīng)用
這篇文章主要介紹了詳解Java8函數(shù)式編程之收集器的應(yīng)用,收集器是一種通用的、從流生成復(fù)雜值的結(jié)構(gòu)??梢允褂盟鼜牧髦猩蒐ist、Set、Map等集合,需要的朋友可以參考下2023-04-04