JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Java 8 列出目录中的所有文件 java统计所有目录下文件个数

wys521 2024-10-31 16:21:09 精选教程 29 ℃ 0 评论

统豺虎,御边幅,号令明,军威肃。

概述

学习将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

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表