java - Java 8 中的深度优先目录流

标签 java java-8 java-stream

我想使用 Stream API 以深度优先顺序遍历 Java 8 中的目录结构。这样做的原因是我想根据每个目录中每个文件中存在的时间戳对文件中的内容进行排序。本质上我正在寻找类似于 Files#walk 的东西但对于目录。我怎样才能做到这一点?

最佳答案

使用 StreamEx轻而易举:

File root = new File("someFilePath");
StreamEx.ofTree(root, x -> StreamEx.of(x.listFiles(File::isDirectory)))
    .map(File::getAbsolutePath) // or whathever you need to do with the folder
    .forEach(System.out::println); // the same as previous line

关于java - Java 8 中的深度优先目录流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43571065/

相关文章:

java - native 浏览器和 Android 应用程序之间是否可以交互?

java - JPA/hibernate : StringClobType deprecated

java - 混淆 Java 中的 long 与 double 行为

maven - 声纳 5.0 maven 3 与 jdk 1.8

date - java.time.format.DateTimeParseException : Text '1963-03-24T00:00:00.000+01:00' could not be parsed at index 19 1000

Java 8 optional 添加仅当 optional.isPresent 时才返回结果

java - 要映射的计时器类

Java流-收集组合器

java - 如何在私有(private)属性中调用公共(public)方法?

java - 使用 Java 8 Streams API,在调用 Collectors.toSet() 时是否可以依赖 sorted()?