gpt4 book ai didi

java - 如何使用 Files.walk 获取文件夹名称和文件名

转载 作者:行者123 更新时间:2023-12-02 08:42:33 25 4
gpt4 key购买 nike

我有一个场景,我需要同时使用 Files.walk 获取文件夹名称和文件名。

目录如下:c:\files\文件夹名1\文件名1.txtc:\files\foldername2\filename2.txt

以下代码给出的输出是文件名

c:\\files\foldername1\\filename1.txt
c:\\files\foldername2\\filename2.txt

try (Stream<Path> walk = Files.walk(Paths.get("c:\\files"))) {
List<String> result = walk.filter(Files::isRegularFile)
.map(x -> x.toString()).collect(Collectors.toList());
}

以下代码给出的输出是目录

c:\\files\foldername1
c:\\files\foldername2

try (Stream<Path> walk = Files.walk(Paths.get("c:\\files"))) {

List<String> result = walk.filter(Files::isDirectory)
.map(x -> x.toString()).collect(Collectors.toList());

result.forEach(System.out::println);
}

有没有一种方法可以同时使用一个过滤器获取文件夹名称和文件名。

最佳答案

这个:

Map<Path, List<Path>> files = walk.filter(Files::isRegularFile).collect(Collectors.groupingBy(Path::getParent))

将为您提供一个ListPathMap。映射的键将是父目录路径。映射的值将是映射条目的键对应的目录中包含的所有文件的列表。

关于java - 如何使用 Files.walk 获取文件夹名称和文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61281379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com