Java 8 List All Files In Directory-遍历文件目录

学习使用Java 8 APIs FIles.list()DirectoryStream 遍历目录下的所有文件,包括隐藏的,递归的文件

1. List all files and sub-directories using Files.list()

Files.list() 方法 遍历当前目录下所有的文件和子目录

Files.list(Paths.get("."))
        .forEach(System.out::println);
 Output:
 
.\filename1.txt
.\directory1
.\filename2.txt
.\Employee.java

2. List only files inside directory using filter expression

使用过滤器来过滤掉子目录,保留文件并打印

Files.list(Paths.get("."))
        .filter(Files::isRegularFile)
        .forEach(System.out::println);
Output:

.\filename1.txt
.\filename2.txt
.\Employee.java

3. List files and sub-directories with Files.newDirectoryStream()

Java提供了一个更加灵活遍历目录内容的方式:Files.newDirectoryStream()

注意,如果对一个大的目录进行操作,使用DirectoryStream将提高代码的运行速度

Files.newDirectoryStream(Paths.get("."))
        .forEach(System.out::println);
Output:
.\filename1.txt
.\directory1
.\filename2.txt
.\Employee.java

4. List only files with Files.newDirectoryStream()

只遍历文件,排除掉目录,通过path filter的第二个参数来控制

Files.newDirectoryStream(Paths.get("."), path -> path.toFile().isFile())
        .forEach(System.out::println);
Output:

.\filename1.txt
.\filename2.txt
.\Employee.java

5. List files of certain extention with Files.newDirectoryStream()

通过文件后缀名来过滤文件

Files.newDirectoryStream(Paths.get("."),
        path -> path.toString().endsWith(".java"))
        .forEach(System.out::println);
Output:

.\Employee.java

6. Find all hidden files in directory

遍历隐藏文件 *** file -> file.isHidden()*** 应用到上面的例子里
或者使用下面更加简短的方法:

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

翻译自 https://howtodoinjava.com/java8/java-8-list-all-files-example/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值