From 287d0804c89e90e1bc2dd8922d99e8bd365e67cc Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Sat, 12 Nov 2022 18:06:34 +0100 Subject: [PATCH] Delete directory recursively in IoUtils --- common/src/main/java/ctbrec/io/IoUtils.java | 42 ++++++++++----------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/common/src/main/java/ctbrec/io/IoUtils.java b/common/src/main/java/ctbrec/io/IoUtils.java index b5f5a577..a34811d3 100644 --- a/common/src/main/java/ctbrec/io/IoUtils.java +++ b/common/src/main/java/ctbrec/io/IoUtils.java @@ -1,34 +1,30 @@ package ctbrec.io; +import ctbrec.Config; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.File; import java.io.IOException; import java.io.OutputStream; -import java.nio.file.FileVisitOption; -import java.nio.file.FileVisitResult; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.SimpleFileVisitor; +import java.nio.file.*; import java.nio.file.attribute.BasicFileAttributes; import java.util.EnumSet; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import ctbrec.Config; - public class IoUtils { private static final Logger LOG = LoggerFactory.getLogger(IoUtils.class); - private IoUtils() {} + private IoUtils() { + } public static void deleteEmptyParents(File parent) throws IOException { File recDir = new File(Config.getInstance().getSettings().recordingsDir); - while (parent != null && (parent.list() != null && parent.list().length == 0 || !parent.exists()) ) { + while (parent != null && (parent.list() != null && parent.list().length == 0 || !parent.exists())) { if (parent.equals(recDir)) { return; } - if(parent.exists()) { + if (parent.exists()) { LOG.debug("Deleting empty directory {}", parent.getAbsolutePath()); Files.delete(parent.toPath()); } @@ -44,12 +40,16 @@ public class IoUtils { File[] files = directory.listFiles(); boolean deletedAllFiles = true; for (File file : files) { - try { - LOG.trace("Deleting {}", file.getAbsolutePath()); - Files.delete(file.toPath()); - } catch (Exception e) { - deletedAllFiles = false; - LOG.debug("Couldn't delete {}", file, e); + if (file.isDirectory()) { + deleteDirectory(file); + } else { + try { + LOG.trace("Deleting {}", file.getAbsolutePath()); + Files.delete(file.toPath()); + } catch (Exception e) { + deletedAllFiles = false; + LOG.debug("Couldn't delete {}", file, e); + } } } @@ -61,10 +61,10 @@ public class IoUtils { } public static long getDirectorySize(File dir) { - final long[] size = { 0 }; + final long[] size = {0}; int maxDepth = 7; try { - Files.walkFileTree(dir.toPath(), EnumSet.noneOf(FileVisitOption.class), maxDepth, new SimpleFileVisitor() { + Files.walkFileTree(dir.toPath(), EnumSet.noneOf(FileVisitOption.class), maxDepth, new SimpleFileVisitor<>() { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { size[0] += attrs.size();