zoukankan      html  css  js  c++  java
  • java文件遍历

    /**
         * 深度搜索遍历文件夹
         * 
         * @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());
                }
            }
    
        }
  • 相关阅读:
    6 、 图论—NP 搜索
    5 、 数值计算
    4 、 数论
    3 、 结构
    2 、 组合
    1 、 几何
    Dikstra 堆优化板子
    SPFA板子
    C++优先队列例子
    一些类使用的模板
  • 原文地址:https://www.cnblogs.com/zincredible/p/11847016.html
Copyright © 2011-2022 走看看