java:如何获取文件夹中所有文件的列表,这些文件的数字名称大于给定的整数?

rekjcdws  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(336)

有一个目录,其中有许多文件夹的所有数字名称。如何获取其中所有文件的列表 only those folders (as in complete path) whose numeric name is greater than a given integer 在 java ?
例如:假设目录 .../home/user 具有以下文件和文件夹,其中每个文件夹中有多个文件: .../home/user/xyz.txt .../home/user/suv.txt .../home/user/19620918/.txt .../home/user/19620919/abc.txt, def.txt .../home/user/19620920/.txt if整数变量 x = 19620918 ,那么我想要一个包含

[.../home/user/19620919/abc.txt,

.../home/user/19620919/def.txt,

.../home/user/19620920/abc.txt]

如何在java中以最简单的方式实现这一点?

kcrjzv8t

kcrjzv8t1#

您可以将文件夹声明为文件并列出文件,然后使用名称大于输入数字的文件过滤流,我使用trycatch块来避免名称不是整数的文件可能出现错误,最后,我获取每个文件夹,并列出它们的文件,将其转换为流,并使用flatmap在单个列表中收集所有内容。

Arrays.stream(new File(".../home/user").listFiles())
.filter(f -> {
    try {
        return Integer.parseInt(f.getName()) > 19620918;
    } catch (NumberFormatException e) {
        return false;
    }
})
.flatMap(f -> Arrays.stream(f.listFiles()))
.collect(Collectors.toList());

结果列表是包含符合条件的文件的列表。

相关问题