网站首页 > 精选教程 正文
统豺虎,御边幅,号令明,军威肃。
概述
学习将Java 8 API与Files.list()和DirectoryStream一起使用,以递归方式列出目录中存在的所有文件,包括隐藏文件。
使用Files.list()列出所有文件和子目录
Files.list()方法列出当前目录中的所有文件名和子目录。
Files.list(Paths.get(".")) .forEach(System.out::println); Output: .\filename1.txt .\directory1 .\filename2.txt .\Employee.java
使用过滤器表达式仅列出目录内的文件
如果需要,可以使用筛选器筛选出子目录并只打印文件名。
Files.list(Paths.get(".")) .filter(Files::isRegularFile) .forEach(System.out::println); Output: .\filename1.txt .\filename2.txt .\Employee.java
要列出另一个目录中的文件,我们可以将“.”替换为所需目录的完整路径。
使用Files.newDirectoryStream()列出文件和子目录
Java提供了一种更灵活的方法来使用Files.newDirectoryStream()遍历目录内容。
请注意,如果我们使用的是大目录,那么使用DirectoryStream实际上会使代码更快。
Files.newDirectoryStream(Paths.get(".")) .forEach(System.out::println); Output: .\filename1.txt .\directory1 .\filename2.txt .\Employee.java
仅列出具有Files.newDirectoryStream()的文件
仅列出文件并从流中排除所有目录,请使用path filter作为第二个参数。
Files.newDirectoryStream(Paths.get("."), path -> path.toFile().isFile()) .forEach(System.out::println); Output: .\filename1.txt .\filename2.txt .\Employee.java
使用Files.newDirectoryStream()列出某些扩展名的文件
你可以更改在第二个参数中传递的路径筛选器表达式,以仅获取特定扩展名的文件。
Files.newDirectoryStream(Paths.get("."), path -> path.toString().endsWith(".java")) .forEach(System.out::println); Output: .\Employee.java
在目录中查找所有隐藏文件
要查找所有隐藏文件,可以在上述任何示例中使用过滤器表达式 file -> file.isHidden()。
或者,可以使用此快捷方式。
final File[] files = new File(".").listFiles(file -> file.isHidden()); //or final File[] files = new File(".").listFiles(File::isHidden);
在以上示例中,我们学习了使用Java 8 API列表或根据各种搜索条件递归地迭代目录中的文件。
原文链接:Java 8 List All Files In Directory – Six Examples
猜你喜欢
- 2024-10-31 Eclipse 创建 Java 项目 eclipse创建java项目有红叉
- 2024-10-31 Java常用工具下载路径 java下载地址在哪
- 2024-10-31 java 读取jar里面的配置文件 读取jar包外properties文件
- 2024-10-31 以下是一份较为完整的 Java 语言学习路径规划:
- 2024-10-31 java中读取properties文件最简单的方法
- 2024-10-31 基于Java的学生课程选课管理系统:项目目录结构 #vue
- 2024-10-31 java 代码里读取jar包下resources目录下的文件
- 2024-10-31 JAVA之多级目录下查找文件中是否含有某个字符串功能实现
- 2024-10-31 现互联网大厂程序员,给你一份Java开发学习路径
- 2024-10-31 「JAVA」三种方式加载本地资源文件:绝对路径、类路径、当前路径
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)