В настоящее время я пытаюсь рекурсивно удалить каталог... Как ни странно, самым коротким фрагментом кода, который я смог найти, является следующая конструкция, использующая внутренний класс ad-hoc и шаблон посетителя...
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, поэтому, пожалуйста, не связывайтесь с внешними библиотеками...