首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Files.walk获取文件夹名和文件名

如何使用Files.walk获取文件夹名和文件名
EN

Stack Overflow用户
提问于 2020-04-18 05:56:35
回答 1查看 367关注 0票数 0

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

下面是目录: c:\files\foldername1\filename1.txt c:\files\foldername2\filename2.txt

下面的代码给出了文件名的输出

代码语言:javascript
运行
复制
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());
}

下面的代码给出了目录的输出

代码语言:javascript
运行
复制
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);
}

有没有办法同时使用一个过滤器来获取文件夹名和文件名?

EN

回答 1

Stack Overflow用户

发布于 2020-04-18 06:13:25

这一点:

代码语言:javascript
运行
复制
Map<Path, List<Path>> files = walk.filter(Files::isRegularFile).collect(Collectors.groupingBy(Path::getParent))

将为您提供List%s到Path%s的关键字。映射的关键字将是父目录路径。映射的值将是包含在与映射条目的键相对应的目录中的所有文件的列表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61281379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档