java 對文件夾目錄進行深度遍歷實例代碼
java 對文件夾目錄進行深度遍歷實例代碼
1、題目
對指定目錄進行所有內容的列出(包含子目錄中的內容),也可以理解為對目錄進行深度遍歷。
2、解題思想
從電腦中獲取文件目錄,建立函數對其遍歷,在這個函數中需要對該目錄中的每個文件進行判斷,如果文件還是目錄,則調用函數本身繼續(xù)對其進行遍歷,如果文件不是目錄,則直接輸出文件名。為了加強顯示的效果,我們還可以建立一個getSpace函數,對其進行縮進。
需要注意的是,不要直接遍歷C盤的內容,其目錄層次太深,含有太多的系統(tǒng)級文件,容易返回為空,導致空指針異常的發(fā)生,也不要直接遍歷D盤,因為只要其含有隱藏的系統(tǒng)卷標目錄,也會造成空指針異常的發(fā)生。
3、Java代碼
import java.io.File;
public class DepthTraversal {
public static void main(String[] args) {
File dir = new File("d:\\BaiduYunDownload");
listAll(dir, 0);
}
public static void listAll(File dir, int level) {
System.out.println(getSpace(level) + dir.getName());
level++; //每調用一次,level加1
File[] files = dir.listFiles(); //獲取指定目錄下當前的所有文件夾或者文件對象
for (int x = 0; x < files.length; x++) { //循環(huán)遍歷
if (files[x].isDirectory()) { //如果是目錄,繼續(xù)調用listAll函數
listAll(files[x], level);
} else { //否則,直接輸出文件名
System.out.println(getSpace(level) + files[x].getName());
}
}
}
private static String getSpace(int level) { //輸出空格,加強顯示效果
StringBuilder sb = new StringBuilder();
sb.append("|--");
for (int x = 0; x < level; x++) {
sb.insert(0, "| ");
}
return sb.toString();
}
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
SpringBoot3.x中自定義開發(fā)通用SDK的實現
本文介紹了SpringBoot和Maven創(chuàng)建自定義的SDK,包括創(chuàng)建項目、修改配置、編寫配置類、設置配置文件、構建Jar包等,具有一定的參考價值,感興趣的可以了解一下2024-12-12
SpringBoot使用validation做參數校驗的實現步驟
這篇文章主要介紹了SpringBoot使用validation做參數校驗的實現步驟,幫助大家更好的理解和學習使用SpringBoot,感興趣的朋友可以了解下2021-05-05
SpringBoot配置mybatis駝峰命名規(guī)則自動轉換的實現
這篇文章主要介紹了SpringBoot配置mybatis駝峰命名規(guī)則自動轉換的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09
從java反編譯及字節(jié)碼角度探索分析String拼接字符串效率
這篇文章主要介紹了從java反編譯及字節(jié)碼角度探索分析String拼接字符串效率,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12

