码迷,mamicode.com
首页 > 编程语言 > 详细

java文件遍历

时间:2019-11-13 11:02:55      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:bfs   list   rect   lin   off   abs   dir   pfile   listt   

/**
     * 深度搜索遍历文件夹
     * 
     * @param dirPath
     * @param list
     */
    public static void dfsListFile(String dirPath, List<String> list) {
        File file = new File(dirPath);
        File[] files = file.listFiles();
        for (File tmpFile : files) {
            if (tmpFile.isDirectory()) {
                dfsListFile(tmpFile.getAbsolutePath(), list);
            } else {
                list.add(tmpFile.getAbsolutePath());
            }
        }
    }

    /**
     * 广度搜索遍历文件夹
     * 
     * @param dirPath
     * @param list
     */
    public static void bfsListFile(String dirPath, List<String> list) {
        File file = new File(dirPath);
        File[] fs = file.listFiles();
        Queue<File> queue = new LinkedList<>();

        // 遍历第一层
        for (File f : fs) {
            // 把第一层文件夹加入队列
            if (f.isDirectory())
                queue.offer(f);
            else
                list.add(f.getAbsolutePath());
        }
        // 逐层搜索下去
        while (!queue.isEmpty()) {
            // 从队列头取一个元素
            File fileTemp = queue.poll();
            File[] fileListTemp = fileTemp.listFiles();
            for (File f : fileListTemp) {
                if (f.isDirectory())
                    queue.offer(f);
                else
                    list.add(f.getAbsolutePath());
            }
        }

    }

 

java文件遍历

标签:bfs   list   rect   lin   off   abs   dir   pfile   listt   

原文地址:https://www.cnblogs.com/zincredible/p/11847016.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!