Java.nio: exclusão recursiva de diretório mais concisa
No momento, estou tentando excluir recursivamente um diretório ... Estranhamente, o menor pedaço de código que consegui encontrar é a seguinte construção, empregando umclasse interna ad-hoc e em umpadrão de visitante...
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();
}
Fonte:aqui
Isso parece terrivelmente desajeitado e detalhado, já que o novonio
As APIs removem tanta confusão e clichê ...
Existe alguma maneira mais curta de conseguir uma exclusão forçada e recursiva de diretório?
Estou procurando métodos Java 1.8 nativos puros, portanto, não faça o link para bibliotecas externas ...