Java文件。仅以“开始”走到筛选文件;";

Java文件。仅以“开始”走到筛选文件;";,java,file,Java,File,你能帮助我怎样才能只过滤以“O_”开头的文件吗?对我来说,StartsWith和EndsWith方法不起作用。结果总是一个空列表 Files.walk(Paths.get(SOURCEDIR)).filter(Files::isRegularFile).forEach(filePath -> { if (true){ System.out.println(filePath.getFileName()); } }); 如果我正

你能帮助我怎样才能只过滤以“O_”开头的文件吗?对我来说,StartsWith和EndsWith方法不起作用。结果总是一个空列表

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

如果我正确理解了您的问题,这应该可以完成以下工作:

Files.walk(Paths.get(SOURCEDIR)).filter(Files::isRegularFile).forEach(filePath ->{

String name=filePath.getFilename().toString();

    if (name.startWith("_O"){
        System.out.println(filePath.getFileName());
    }

});

如果我正确理解了您的问题,这应该可以完成以下工作:

Files.walk(Paths.get(SOURCEDIR)).filter(Files::isRegularFile).forEach(filePath ->{

String name=filePath.getFilename().toString();

    if (name.startWith("_O"){
        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语法,并为您提供独立的行来完成此工作。

这是一个非常老的问题,但我在搜索一些目录阅读方式时仍能找到它

无论如何,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语法并为您提供独立的行来执行此操作。

filter(p->p.getFileName().startsWith(“O_”))
不起作用?
filter(p->p.getFileName().startsWith(“O_”)
不起作用?