Java.nio:最简洁的递归目录删除
2022-08-31 16:16:38
我目前正在尝试递归删除目录...奇怪的是,我能找到的最短的代码段是以下构造,它采用临时内部类和访问者模式......
Path rootPath = Paths.get("data/to-delete");
try {
Files.walkFileTree(rootPath, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
System.out.println("delete file: " + file.toString());
Files.delete(file);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
Files.delete(dir);
System.out.println("delete dir: " + dir.toString());
return FileVisitResult.CONTINUE;
}
});
} catch(IOException e){
e.printStackTrace();
}
来源: 这里
这感觉非常笨拙和冗长,因为新的API消除了如此多的混乱和样板......nio
有没有更短的方法来实现强制的递归目录删除?
我正在寻找纯原生Java 1.8方法,所以请不要链接到外部库...