1. 使用Files.list()迭代目录及其子目录文件

Files.list()可以迭代目录及其子目录文件

Files.list(Paths.get(".")) //当前目录

.forEach(System.out::println);

输出:

.\filename1.txt

.\directory1

.\filename2.txt

.\Employee.java

2. 使用 filter表达式过滤文件

过滤器函数引用,isRegularFile表示普通文件

Files.list(Paths.get("."))

.filter(Files::isRegularFile) //过滤器:只保留普通文件,过滤掉文件目录

.forEach(System.out::println);

输出结果如下:

.\filename1.txt

.\filename2.txt

.\Employee.java

也可以使用lambda表达式进行过滤

Files.list(Paths.get("."))

.filter(s -> s.startsWith("file")) //过滤器:只保留以file开头的文件及目录

.forEach(System.out::println);

3. 使用 Files.newDirectoryStream()迭代目录及其子目录文件

另一种更灵活的遍历目录的方式Files.newDirectoryStream(),如果我们的目录文件又深又多,DirectoryStream可以使迭代目录的速度更快。

Files.newDirectoryStream(Paths.get("."))

.forEach(System.out::println);

输出结果与Files.list()效果一致

.\filename1.txt

.\directory1

.\filename2.txt

.\Employee.java

4. 使用Files.newDirectoryStream()迭代指定文件后缀名的文件

我们可以为Files.newDirectoryStream()传递第二个参数,指定过滤条件,比如以java(结尾)为后缀名的文件

Files.newDirectoryStream(Paths.get("."),

path -> path.toString().endsWith(".java"))

.forEach(System.out::println);

Output:

.\Employee.java

5. 遍历目录内的隐藏文件

要查找所有隐藏文件,可以在过滤器中使用lambda表达式file -> file.isHidden()。或者,使用java8的方法引用。

final File[] files = new File(".").listFiles(file -> file.isHidden());

//or

final File[] files = new File(".").listFiles(File::isHidden);

欢迎关注我的博客,里面有很多精品合集

本文转载注明出处(必须带连接,不能只转文字):字母哥博客。

觉得对您有帮助的话,帮我点赞、分享!您的支持是我不竭的创作动力! 。另外,笔者最近一段时间输出了如下的精品内容,期待您的关注。

java8 遍历目录_使用java8API遍历过滤文件目录及子目录及隐藏文件相关推荐

  1. java让文件隐藏文件_使用java8API遍历过滤文件目录及子目录及隐藏文件

    1. 使用Files.list()迭代目录及其子目录文件 Files.list()可以迭代目录及其子目录文件 Files.list(Paths.get(".")) //当前目录 . ...

  2. python下标遍历字典_字典的遍历以及公共方法

    目录 遍历 字符串的遍历 列表遍历 元组遍历 字典遍历 1> 遍历字典的key(键) 2> 遍历字典的value(值) 3> 遍历字典的项(元素) 补充 实现带下标索引的遍历,方法一 ...

  3. linux脚本遍历目录,shell脚本递归遍历目录及子目录的例子分享

    用shell写的递归遍历目录的脚本,脚本实现递归遍历指定目录,打印目录下的文件名. 实例1: 复制代码 代码如下: #!/bin/sh function scandir() { local cur_d ...

  4. v-for能倒序遍历吗_神级遍历——morris

    morris遍历介绍 morris遍历是二叉树遍历算法的超强进阶算法,跟递归.非递归(栈实现)的空间复杂度,morris遍历可以将非递归遍历中的空间复杂度降为O(1).从而实现时间复杂度为O(N),而 ...

  5. python递归遍历目录_Python实现递归遍历文件夹并删除文件

    思路: 遍历文件夹下面的文件夹 如果文件夹名称等于".svn",则修改文件夹的属性(因为".svn"的文件都是只读的,你不能直接删除) 删除此文件夹 如果文件夹 ...

  6. clientdataset 遍历字段_解决DBGridEh遍历记录后不移动当前行位置的方法

    解决DBGridEh遍历记录后不移动当前行位置的方法 在用DBGridEh配合ClientDataSet使用时,需要知道用户选择了哪些记录,可用遍历记录的方法查询选择列是否为真,但在这之后,Clien ...

  7. python3遍历电子表格_用openpyxl遍历excel表格

    Python的openpyxl模块,提供了对excel表格的读写操作接口.本文介绍使用openpyxl来遍历excel表格. openpyxl支持Excel 2010 xlsx/xlsm/xltx/x ...

  8. 网页打开共享目录_你会做Excel文件目录吗?真的太太太太太简单了!

    点击蓝字发送[2020]免费领 100+图表模板!本文作者:长小安本文编辑:尔冬哈喽大家好!我是长小安,一名和秋叶一起学了多年 Excel.现在成功出道投稿的同学~让我来猜猜,你的电脑是不是也像我的一 ...

  9. php 找目录下txt文件,PHP遍历目录下的TXT文件且按时候排序_后端开发

    遍历目次下的txt文件 示例: //遍历目次下文件要领 function printdir($dir) { $files = array(); //opendir() 翻开目次句柄 if($handl ...

最新文章

  1. 如何利用离散Hopfield神经网络进行数字识别(1)
  2. Python中读取、显示和保存图片的方法
  3. python代码大全p-Python5种代码维护工具
  4. python2.7 + selenium3.4.3浏览器的选择
  5. JS引用类型(2)——Array类型
  6. 在 C# 中,如何发现死锁并防止死锁
  7. xxl-job执行定时job原理
  8. abstract class和interface有什么区别
  9. duilib 子窗口位置_duilib各种布局的作用,相对布局与绝对布局的的意义与使用方法...
  10. python开发飞船游戏
  11. 微软重写 Windows 10 激活规则
  12. Docker 学习5 Docker容器网络
  13. 什么是协方差(covariance)?(延伸到 协方差矩阵、多元高斯分布、PCA)
  14. PHP判断PC浏览器与手机浏览器的方法
  15. springboot整合mongodb
  16. el-select和el-tree结合的下拉树
  17. 告别windows,拥抱ubuntu
  18. 9GAG客户端,五一3天尽心之作,Just Android Design!(开源)+毛玻璃效果
  19. 移动地图应用普及给企业带来的利益
  20. “Hacker_R_US”因炸弹威胁和DDoS勒索被判8年监禁

热门文章

  1. Caffe 编译错误记录
  2. 经典卷积神经网络--LeNet-5的详解
  3. Android笔记:onSaveInstanceState和onRestoreInstanceState总结
  4. Collections.unmodifiableMap
  5. 最简单的视音频播放示例9:SDL2播放PCM
  6. Netgear wndr3700v2 路由器刷OpenWrt打造全能服务器(五)SVN服务
  7. 封装 js 插件 实例
  8. WaitForSingleObject
  9. Oracle删除window服务
  10. mac下的tensorflow报错提示没有models库