你能帮我解决一下如何只过滤以" O _"?开头的文件对我来说,StartsWith和EndsWith方法并不起作用。结果总是一个空列表。
Files.walk(Paths.get(SOURCEDIR)).filter(Files::isRegularFile).forEach(filePath -> {
if (true){
System.out.println(filePath.getFileName());
}
});
答案 0 :(得分:3)
真的很老问题,但是当我搜索某些目录时,我仍然会找到它。
无论如何,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语法,并为您提供了一个完成工作的独立行。
答案 1 :(得分:2)
如果我理解你的问题,这应该做的工作:
Files.walk(Paths.get(SOURCEDIR)).filter(Files::isRegularFile).forEach(filePath ->{
String name=filePath.getFilename().toString();
if (name.startWith("_O"){
System.out.println(filePath.getFileName());
}
});