前言
本文主要介绍采用Files.walk()方法获取本地目录下所有文件,该方法通过递归遍历以给定起始文件为根的文件树来返回由Path延迟填充的流,且文件树是基于深度优先遍历。该方法可用于千万级文件数量下高性能深度遍历。
代码示例
主要贴出关于获取根目录下所有文件以及所有子目录下文件的绝对路径文件名的代码实现。
public List<String> getFile(String localPath){
List<String> fileList = new ArrayList<>();
try(Stream<Path> walk = Files.walk(Paths.get(localPath))){
fileList = walk.filter(Files::isRegularFile).map(path ->path.getParent()+"/"+path.getFileName().toString()).collect(Collectors.toList());
} catch (IOException e){
e.printStackTrace();
}
return fileList;
}