中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java怎么遍歷文件夾

發布時間:2021-12-18 15:20:44 來源:億速云 閱讀:131 作者:iii 欄目:云計算

本篇內容主要講解“Java怎么遍歷文件夾”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java怎么遍歷文件夾”吧!

/** 遍歷文件夾 */

public class TraversalFolder {

/**
 * 深度優先遍歷文件夾
 * <p>
 * 要點:使用遞歸的方式來實現。
 *
 * [@param](https://my.oschina.net/u/2303379) topFile
 * [@param](https://my.oschina.net/u/2303379) orderedList
 */
public static void depthFirstSearch(File topFile, ArrayList<File> orderedList) {

    if (null != topFile) {
        if (topFile.isDirectory()) {
            File[] files = topFile.listFiles();
            for (File file : files) {
                if (file.isDirectory()) {
                    depthFirstSearch(file, orderedList);
                } else {
                    orderedList.add(file);
                }
            }
        } else {
            orderedList.add(topFile);
        }
    }
}

/**
 * 廣度優先遍歷文件夾
 * <p>
 * 要點:利用棧的先進后出的特點來實現。
 *
 * [@param](https://my.oschina.net/u/2303379) topFile
 * [@param](https://my.oschina.net/u/2303379) orderedList
 * [@param](https://my.oschina.net/u/2303379) maxNum
 */
public static void breadthFirstSearch(File topFile, ArrayList<File> orderedList, int maxNum) {

    if (null != topFile) {

        LinkedBlockingQueue<File> queue = new LinkedBlockingQueue<File>(maxNum);
        queue.offer(topFile);

        while (!queue.isEmpty()) {

            File file = queue.poll();
            if (file.isDirectory()) {
                File[] files = file.listFiles();
                for (File f : files) {
                    if (f.isDirectory()) {
                        queue.offer(f);
                    } else {
                        orderedList.add(f);
                    }
                }
            } else {
                orderedList.add(file);
            }
        }
    }
}


public static void main(String[] args) {

    String path = "C:\\Users\\jxn\\Desktop\\新建文件夾(3)";
    File topFile = new File(path);

    ArrayList<File> orderedList = new ArrayList<>();

//        depthFirstSearch(topFile,orderedList);
    breadthFirstSearch(topFile, orderedList, 100);

    orderedList.stream().forEach((x) -> {
        System.out.println(x.getAbsoluteFile());
    });

}

}

到此,相信大家對“Java怎么遍歷文件夾”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汉源县| 乌兰浩特市| 香格里拉县| 台北县| 福安市| 郁南县| 永新县| 吉林省| 长乐市| 克什克腾旗| 新乡市| 大田县| 莎车县| 临邑县| 昌平区| 潮州市| 临西县| 华安县| 湘西| 抚顺县| 喀什市| 龙泉市| 英山县| 轮台县| 民丰县| 汾阳市| 江都市| 浦城县| 正蓝旗| 岚皋县| 绥阳县| 通海县| 墨江| 佛学| 武强县| 石狮市| 湘潭县| 遂溪县| 江城| 东源县| 龙川县|