回答评论:使用流遍历文件 list

网友视频评论

回答评论:

arraylist里包含了一个文件夹内部文件和子文件夹 怎么使用steam 可以遍历整个文件夹 最后生成的集合里是所有的文件路径,比如D:/test test文件夹里面有1.mp4, test2,test3的文件夹, test2和test3内部也嵌套了文件夹和文件

其实可以直接使用 List 类的 forEach 方法,遍历每一个文件,对每一个文件调用递归方法遍历其下所有的文件的全文件名就可以了:

java 复制代码
public class Demo {
    public static void main(String[] args) {
        Demo.useStream();
    }

    public static void useStream() {
        String directoryPath = "F:\\test";

        File directory = new File(directoryPath);
        final ArrayList<String> res = new ArrayList<>();
        final File[] files = directory.listFiles();
        if (Objects.nonNull(files)) {
            // 包含了 test 目录下的所有文件以及子文件夹的 list
            final ArrayList<File> dicAllFiles = new ArrayList<>(Arrays.asList(files));

            // 直接使用 forEach 方法就可以了,不需要转为流
            dicAllFiles
                    .forEach(file -> traverseAllFiles(file, res));
        }
        System.out.println(res);
    }


    public static void traverseAllFiles(File directory, List<String> allFilesName) {
        if (directory.isFile()) {
            allFilesName.add(directory.getAbsolutePath());
        } else {
            File[] files = directory.listFiles();

            // 检查是否有文件
            if (files != null) {
                for (File file : files) {
                    if (file.isFile()) {
                        allFilesName.add(file.getAbsolutePath());
                    } else if (file.isDirectory()) {
                        traverseAllFiles(file, allFilesName);
                    }
                }
            }
        }
    }
}
相关推荐
自我意识的多元宇宙5 小时前
树与二叉树--二叉树的存储结构
数据结构
自我意识的多元宇宙10 小时前
二叉树的遍历和线索二叉树--二叉树的遍历
数据结构
qq_50242899010 小时前
清华大学与微软亚洲研究院出品:Kronos 本地部署教程
数据结构·python·金融量化·kronos开源模型
C雨后彩虹12 小时前
最多等和不相交连续子序列
java·数据结构·算法·华为·面试
cpp_250113 小时前
P2347 [NOIP 1996 提高组] 砝码称重
数据结构·c++·算法·题解·洛谷·noip·背包dp
今天又在写代码13 小时前
数据结构v2
数据结构
Rabitebla14 小时前
C++ 和 C 语言实现 Stack 对比
c语言·数据结构·c++·算法·排序算法
深邃-14 小时前
【数据结构与算法】-顺序表链表经典算法
java·c语言·数据结构·c++·算法·链表·html5
就爱学编程14 小时前
惊叹数据结构之美,品味排序算法之妙:对计排、桶排的详细介绍
数据结构·算法·排序算法
努力努力再努力wz14 小时前
【MySQL入门系列】掌握表数据的 CRUD:DML 核心语法与执行逻辑解析
android·开发语言·数据结构·数据库·c++·b树·mysql