Fixed bugs in safeDeleteEmptyParentDirectories()

This commit is contained in:
CalDescent 2021-12-01 11:59:14 +00:00
parent b7ee00fb22
commit 97cdd53861

View File

@ -169,16 +169,22 @@ public class FilesystemUtils {
}
public static void safeDeleteEmptyParentDirectories(Path path) throws IOException {
final Path absolutePath = path.toAbsolutePath();
if (!absolutePath.toFile().isDirectory()) {
final Path parentPath = path.toAbsolutePath().getParent();
if (!parentPath.toFile().isDirectory()) {
return;
}
if (!FilesystemUtils.pathInsideDataOrTempPath(absolutePath)) {
if (!FilesystemUtils.pathInsideDataOrTempPath(parentPath)) {
return;
}
Files.deleteIfExists(absolutePath);
try {
Files.deleteIfExists(parentPath);
FilesystemUtils.safeDeleteEmptyParentDirectories(absolutePath.getParent());
} catch (DirectoryNotEmptyException e) {
// We've reached the limits of what we can delete
return;
}
FilesystemUtils.safeDeleteEmptyParentDirectories(parentPath);
}
public static boolean pathInsideDataOrTempPath(Path path) {