package de.mlessmann.certassist; import java.io.IOException; import java.nio.file.FileVisitResult; import java.nio.file.FileVisitor; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.attribute.BasicFileAttributes; import lombok.extern.slf4j.Slf4j; import org.springframework.lang.NonNull; @Slf4j public class DeleteRecursiveFileVisitor implements FileVisitor { @NonNull @Override public FileVisitResult preVisitDirectory(Path dir, @NonNull BasicFileAttributes attrs) throws IOException { return FileVisitResult.CONTINUE; } @NonNull @Override public FileVisitResult visitFile(Path file, @NonNull BasicFileAttributes attrs) throws IOException { log.trace("Deleting file {}", file); Files.delete(file); return FileVisitResult.CONTINUE; } @NonNull @Override public FileVisitResult visitFileFailed(Path file, @NonNull IOException exc) throws IOException { log.error("Could not delete file {}", file, exc); throw exc; } @NonNull @Override public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException { log.trace("Deleting directory {}", dir); Files.delete(dir); return FileVisitResult.CONTINUE; } }