您好,登錄后才能下訂單哦!
java 對文件夾目錄進行深度遍歷實例代碼
1、題目
對指定目錄進行所有內容的列出(包含子目錄中的內容),也可以理解為對目錄進行深度遍歷。
2、解題思想
從電腦中獲取文件目錄,建立函數對其遍歷,在這個函數中需要對該目錄中的每個文件進行判斷,如果文件還是目錄,則調用函數本身繼續對其進行遍歷,如果文件不是目錄,則直接輸出文件名。為了加強顯示的效果,我們還可以建立一個getSpace函數,對其進行縮進。
需要注意的是,不要直接遍歷C盤的內容,其目錄層次太深,含有太多的系統級文件,容易返回為空,導致空指針異常的發生,也不要直接遍歷D盤,因為只要其含有隱藏的系統卷標目錄,也會造成空指針異常的發生。
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++) { //循環遍歷 if (files[x].isDirectory()) { //如果是目錄,繼續調用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(); } }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。