您能否帮助我如何仅过滤以“ O_”开头的文件?对我来说StartsWith和EndsWith方法不起作用,结果始终是一个空列表。

Files.walk(Paths.get(SOURCEDIR)).filter(Files::isRegularFile).forEach(filePath -> {
        if (true){
            System.out.println(filePath.getFileName());
        }
    });

最佳答案

确实是个老问题,但是当我搜索一些目录读取方式时仍然可以找到它。

无论如何,assylias评论了第一个要添加的帖子:

filter(p -> p.getFileName().startsWith("O_"))


这不起作用,因为缺少.toString()函数。这样,您可以通过更有效的方式解决问题:

Files.walk(Paths.get(SOURCEDIR))
    .filter(p -> p.getFileName().toString().startsWith("O_"))
    .forEach(System.out::println);


哪一个使用Java 8语法并为您提供一条独立的线路来完成工作。

07-28 03:59