From 402f96337859d2b454ec87b2a66fbcda9a6d90e7 Mon Sep 17 00:00:00 2001 From: Jakub Valtar Date: Tue, 29 Sep 2015 21:03:15 -0400 Subject: [PATCH] Comeback of deleteDir --- app/src/processing/app/Util.java | 23 ++++++++++++++++--- .../app/contrib/AvailableContribution.java | 4 ++-- .../app/contrib/LocalContribution.java | 3 +-- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/app/src/processing/app/Util.java b/app/src/processing/app/Util.java index 535cdbf83..8e51428a0 100644 --- a/app/src/processing/app/Util.java +++ b/app/src/processing/app/Util.java @@ -301,8 +301,17 @@ public class Util { /** * Remove all files in a directory and the directory itself. + * Prints error messages with failed filenames. */ static public boolean removeDir(File dir) { + return removeDir(dir, true); + } + + /** + * Remove all files in a directory and the directory itself. + * Optinally prints error messages with failed filenames. + */ + static public boolean removeDir(File dir, boolean printErrorMessages) { if (!dir.exists()) return true; boolean result = true; @@ -310,13 +319,21 @@ public class Util { if (files != null) { for (File child : files) { if (child.isFile()) { - result &= child.delete(); + boolean deleted = child.delete(); + if (!deleted && printErrorMessages) { + System.err.println("Could not delete " + child.getAbsolutePath()); + } + result &= deleted; } else if (child.isDirectory()) { - result &= removeDir(child); + result &= removeDir(child, printErrorMessages); } } } - result &= dir.delete(); + boolean deleted = dir.delete(); + if (!deleted && printErrorMessages) { + System.err.println("Could not delete " + dir.getAbsolutePath()); + } + result &= deleted; return result; } diff --git a/app/src/processing/app/contrib/AvailableContribution.java b/app/src/processing/app/contrib/AvailableContribution.java index f410f890e..7d15eafb3 100644 --- a/app/src/processing/app/contrib/AvailableContribution.java +++ b/app/src/processing/app/contrib/AvailableContribution.java @@ -196,7 +196,7 @@ public class AvailableContribution extends Contribution { } // 4. Okay, now actually delete that temp folder - Util.removeDir(newContribFolder); + Util.removeDir(newContribFolder, false); } else { if (status != null) { @@ -207,7 +207,7 @@ public class AvailableContribution extends Contribution { // Remove any remaining boogers if (tempFolder.exists()) { - Util.removeDir(tempFolder); + Util.removeDir(tempFolder, false); } return installedContrib; } diff --git a/app/src/processing/app/contrib/LocalContribution.java b/app/src/processing/app/contrib/LocalContribution.java index 8e23416ab..dc182b9bb 100644 --- a/app/src/processing/app/contrib/LocalContribution.java +++ b/app/src/processing/app/contrib/LocalContribution.java @@ -449,8 +449,7 @@ public abstract class LocalContribution extends Contribution { if (doBackup) { success = backup(true, status); } else { - Util.removeDir(getFolder()); - success = !getFolder().exists(); + success = Util.removeDir(getFolder(), false); } if (success) {