当前位置: 首页 > news >正文

回答评论:使用流遍历文件 list

网友视频评论
回答评论:
arraylist里包含了一个文件夹内部文件和子文件夹 怎么使用steam 可以遍历整个文件夹 最后生成的集合里是所有的文件路径,比如D:/test test文件夹里面有1.mp4, test2,test3的文件夹, test2和test3内部也嵌套了文件夹和文件

其实可以直接使用 List 类的 forEach 方法,遍历每一个文件,对每一个文件调用递归方法遍历其下所有的文件的全文件名就可以了:

public class Demo {public static void main(String[] args) {Demo.useStream();}public static void useStream() {String directoryPath = "F:\\test";File directory = new File(directoryPath);final ArrayList<String> res = new ArrayList<>();final File[] files = directory.listFiles();if (Objects.nonNull(files)) {// 包含了 test 目录下的所有文件以及子文件夹的 listfinal ArrayList<File> dicAllFiles = new ArrayList<>(Arrays.asList(files));// 直接使用 forEach 方法就可以了,不需要转为流dicAllFiles.forEach(file -> traverseAllFiles(file, res));}System.out.println(res);}public static void traverseAllFiles(File directory, List<String> allFilesName) {if (directory.isFile()) {allFilesName.add(directory.getAbsolutePath());} else {File[] files = directory.listFiles();// 检查是否有文件if (files != null) {for (File file : files) {if (file.isFile()) {allFilesName.add(file.getAbsolutePath());} else if (file.isDirectory()) {traverseAllFiles(file, allFilesName);}}}}}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • EmguCV学习笔记 VB.Net 6.5 凸包和凸缺陷
  • laravel发送邮件的使用方法?有哪些技巧?
  • 计算机毕业设计选题推荐-游戏比赛网上售票系统-Java/Python项目实战
  • 【MySQL数据库管理问答题】第2章 安装和升级MySQL
  • python markdown vuejs前端:如何正确处理多行字符串的缩进问题
  • [LitCTF 2023]1zjs
  • 虚拟机网络的三种模式,NAT模式,桥接模式,仅主机模式
  • 数学建模学习(120):使用Python实现基于AHP的供应商选择分析
  • docker 多线成服务,比如gunicorn服务启动报错解决办法
  • EXSi配置虚拟机的网络模式为NAT和仅主机
  • 内存管理篇-06Per-CPU页帧缓存
  • toRaw 与 markRaw
  • 【机器学习】逻辑回归
  • ArcGIS Pro基础:如何将数据和引用地图样式一起打包分享
  • leetcode53:最大子数组和
  • ES6指北【2】—— 箭头函数
  • 【comparator, comparable】小总结
  • Debian下无root权限使用Python访问Oracle
  • docker-consul
  • Docker入门(二) - Dockerfile
  • ECMAScript6(0):ES6简明参考手册
  • Git 使用集
  • leetcode-27. Remove Element
  • miaov-React 最佳入门
  • PAT A1120
  • Redis 中的布隆过滤器
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • uva 10370 Above Average
  • vue-loader 源码解析系列之 selector
  • webgl (原生)基础入门指南【一】
  • 二维平面内的碰撞检测【一】
  • 关于字符编码你应该知道的事情
  • 码农张的Bug人生 - 见面之礼
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 删除表内多余的重复数据
  • 算法-图和图算法
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 从如何停掉 Promise 链说起
  • 数据可视化之下发图实践
  • ​低代码平台的核心价值与优势
  • ​马来语翻译中文去哪比较好?
  • ​业务双活的数据切换思路设计(下)
  • (1)STL算法之遍历容器
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (day6) 319. 灯泡开关
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (计算机网络)物理层
  • (南京观海微电子)——COF介绍
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)linux下的时间函数使用
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu