我想只列出Java 8中以.txt
扩展名结尾的文件夹中的文件名。
使用这段代码,我获得了所有文件名,并且有很多 .txt 扩展名:
List<Path> fileNames = Files.list(configFilePath)
.map(Path::getFileName)
.sorted()
.collect(toList());
但是使用这段代码我得到一个空的:
List<Path> fileNames = Files.list(configFilePath)
filter(file -> file.getFileName().endsWith(".txt"))
.map(Path::getFileName)
.sorted()
.collect(toList());
答案 0 :(得分:6)
要实现此目的,请使用以下代码行:
Files.list(configFilePath)
.filter(s -> s.toString().endsWith(".txt"))
.forEach(System.out::println);
您的任务是仅从文件夹中获取以.txt
结尾的文件名。因此,实现此目的的最简单方法是使用filter
方法,该方法将谓词作为参数。使用谓词意味着保留满足给定条件的所有元素。因为您有List
个Path
个对象,所以我们首先需要将这些对象转换为String并检查它是否以.txt
结尾。最后我们只打印结果。