43 lines
1.3 KiB
Java
43 lines
1.3 KiB
Java
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<Path> {
|
|
|
|
@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;
|
|
}
|
|
}
|