package com.github.sakserv.minicluster.util;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
public final class FileUtils {
// Logger
private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(FileUtils.class);
public static void deleteFolder(String directory) {
try {
Path directoryPath = Paths.get(directory).toAbsolutePath();
LOG.info("FILEUTILS: Deleting contents of directory: {}",
directoryPath.toAbsolutePath().toString());
Files.walkFileTree(directoryPath, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
throws IOException {
Files.delete(file);
LOG.info("Removing file: {}", file.toAbsolutePath().toString());
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc)
throws IOException {
Files.delete(dir);
LOG.info("Removing directory: {}", dir.toAbsolutePath().toString());
return FileVisitResult.CONTINUE;
}
});
} catch (IOException e) {
LOG.error("FILEUTILS: Unable to remove {}", directory);
}
}
@Override
public String toString() {
return "FileUtils";
}
}