java 對文件夾目錄進行深度遍歷實例代碼
java 對文件夾目錄進行深度遍歷實例代碼
1、題目
對指定目錄進行所有內(nèi)容的列出(包含子目錄中的內(nèi)容),也可以理解為對目錄進行深度遍歷。
2、解題思想
從電腦中獲取文件目錄,建立函數(shù)對其遍歷,在這個函數(shù)中需要對該目錄中的每個文件進行判斷,如果文件還是目錄,則調(diào)用函數(shù)本身繼續(xù)對其進行遍歷,如果文件不是目錄,則直接輸出文件名。為了加強顯示的效果,我們還可以建立一個getSpace函數(shù),對其進行縮進。
需要注意的是,不要直接遍歷C盤的內(nèi)容,其目錄層次太深,含有太多的系統(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++; //每調(diào)用一次,level加1 File[] files = dir.listFiles(); //獲取指定目錄下當前的所有文件夾或者文件對象 for (int x = 0; x < files.length; x++) { //循環(huán)遍歷 if (files[x].isDirectory()) { //如果是目錄,繼續(xù)調(diào)用listAll函數(shù) 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(); } }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
Spring Boot集成starrocks快速入門Demo(適用場景)
StarRocks 是新一代極速全場景 MPP (Massively Parallel Processing) 數(shù)據(jù)庫,StarRocks 的愿景是能夠讓用戶的數(shù)據(jù)分析變得更加簡單和敏捷,這篇文章主要介紹了Spring Boot集成starrocks快速入門Demo,需要的朋友可以參考下2024-08-08RocketMQ?broker?消息投遞流程處理PULL_MESSAGE請求解析
這篇文章主要為大家介紹了RocketMQ?broker?消息投遞流程處理PULL_MESSAGE請求源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04SpringBoot利用validation實現(xiàn)優(yōu)雅的校驗參數(shù)
數(shù)據(jù)的校驗是交互式網(wǎng)站一個不可或缺的功能,如果數(shù)據(jù)庫中出現(xiàn)一個非法的郵箱格式,會讓運維人員頭疼不已。本文將介紹如何利用validation來對數(shù)據(jù)進行校驗,感興趣的可以跟隨小編一起學習一下2022-06-06Spring使用注解方式實現(xiàn)創(chuàng)建對象
這篇文章主要介紹了Spring使用注解方式實現(xiàn)創(chuàng)建對象,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2023-02-02