Java 8中的深度优先目录流

时间:2017-04-23 12:19:54

标签: java java-8 java-stream

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

2 个答案:

答案 0 :(得分:4)

使用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

答案 1 :(得分:2)

很难理解您的问题描述,最值得注意的是,当您说要“根据每个目录中每个文件中存在的时间戳对文件中的内容进行排序”时,您实际想要做什么。

当你说你想要“类似于Files#walk但是对于目录”时,它意味着你在使用npm install auth0-angular目录时遇到问题,但是不清楚,你有什么问题。

即,您只需列出当前目录的所有子目录,如

Files.walk

因此,如果这与您的目标不符,您必须花更多时间来详细说明目标。