Files.list 和 Files.walkFileTree 以及 files.walk maxdepth = 1 之间的区别是什么?
2022-09-03 01:23:49
如果我只想对目录第一层的文件执行某些操作,则使用 或 或 之间是否有区别?Files.list(...)
Files.walkFileTree(...)
Files.walk(...)
Files.walkFileTree(directory, Collections.emptySet(), 1, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
doSomething(file);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFileFailed(Path file, IOException exc) {
// log exc
return FileVisitResult.CONTINUE;
}
});
对
Files.list(directory)
.forEach(path -> {
try {
doSomething(path);
} catch (IOException exc) {
// log exc
}
});
对
Files.walk(directory, 1)
.forEach(path -> {
try {
doSomething(path);
} catch (IOException exc) {
// log exc
}
});