From d6479c13907e28bfaab7436c725d843504ded45e Mon Sep 17 00:00:00 2001 From: CalDescent Date: Wed, 15 Dec 2021 12:15:58 +0000 Subject: [PATCH] ArbitraryDataFile.cleanupFilesystem() now uses generic FilesystemUtils.safeDeleteEmptyParentDirectories() code. --- .../qortal/arbitrary/ArbitraryDataFile.java | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/src/main/java/org/qortal/arbitrary/ArbitraryDataFile.java b/src/main/java/org/qortal/arbitrary/ArbitraryDataFile.java index 92e59092..b6fc531b 100644 --- a/src/main/java/org/qortal/arbitrary/ArbitraryDataFile.java +++ b/src/main/java/org/qortal/arbitrary/ArbitraryDataFile.java @@ -401,26 +401,12 @@ public class ArbitraryDataFile { return fileDeleted || metadataDeleted || chunksDeleted; } - protected void cleanupFilesystem() { + protected void cleanupFilesystem() throws IOException { // It is essential that use a separate path reference in this method // as we don't want to modify this.filePath Path path = this.filePath; - // Iterate through two levels of parent directories, and delete if empty - for (int i=0; i<2; i++) { - Path directory = path.getParent().toAbsolutePath(); - try (Stream files = Files.list(directory)) { - final long count = files.count(); - if (count == 0) { - if (FilesystemUtils.pathInsideDataOrTempPath(directory)) { - Files.delete(directory); - } - } - } catch (IOException e) { - LOGGER.warn("Unable to count files in directory", e); - } - path = directory; - } + FilesystemUtils.safeDeleteEmptyParentDirectories(path); } public byte[] getBytes() {