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("\\\\");
// 設(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) {
// 建立當前目錄中文件的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使用Thumbnailator實現(xiàn)快速處理圖片
它提供了簡單易用的API,可以輕松地生成縮略圖并進行各種操作,Thumbnailator是一個Java庫,用于創(chuàng)建和操作圖像縮略圖,下面我們就來看看具體的操作吧2025-04-04
spring security動態(tài)配置url權(quán)限的2種實現(xiàn)方法
對于使用spring security來說,存在一種需求,就是動態(tài)去配置url的權(quán)限,即在運行時去配置url對應(yīng)的訪問角色。下面這篇文章主要給大家介紹了關(guān)于spring security動態(tài)配置url權(quán)限的2種實現(xiàn)方法,需要的朋友可以參考下2018-06-06
java 實現(xiàn)下壓棧的操作(能動態(tài)調(diào)整數(shù)組大小)
這篇文章主要介紹了java 實現(xiàn)下壓棧的操作(能動態(tài)調(diào)整數(shù)組大小),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
java?stream實現(xiàn)分組BigDecimal求和以及自定義分組求和
這篇文章主要給大家介紹了關(guān)于java?stream實現(xiàn)分組BigDecimal求和以及自定義分組求和的相關(guān)資料,Stream是Java8的一大亮點,是對容器對象功能的增強,它專注于對容器對象進行各種非常便利、高效的聚合操作或者大批量數(shù)據(jù)操作,需要的朋友可以參考下2023-12-12

