Merge branch 'master' of github.com:processing/processing

This commit is contained in:
Ben Fry
2015-09-30 09:38:01 -04:00
3 changed files with 27 additions and 30 deletions

View File

@@ -301,42 +301,40 @@ public class Util {
/**
* Remove all files in a directory and the directory itself.
* Prints error messages with failed filenames.
*/
static public void removeDir(File dir) {
if (dir.exists()) {
removeDescendants(dir);
if (!dir.delete()) {
System.err.println("Could not delete " + dir);
}
}
static public boolean removeDir(File dir) {
return removeDir(dir, true);
}
/**
* Recursively remove all files within a directory,
* used with removeDir(), or when the contents of a dir
* should be removed, but not the directory itself.
* (i.e. when cleaning temp files from lib/build)
* Remove all files in a directory and the directory itself.
* Optinally prints error messages with failed filenames.
*/
static public void removeDescendants(File dir) {
if (!dir.exists()) return;
static public boolean removeDir(File dir, boolean printErrorMessages) {
if (!dir.exists()) return true;
String files[] = dir.list();
for (int i = 0; i < files.length; i++) {
if (files[i].equals(".") || files[i].equals("..")) continue;
File dead = new File(dir, files[i]);
if (!dead.isDirectory()) {
if (!Preferences.getBoolean("compiler.save_build_files")) {
if (!dead.delete()) {
// temporarily disabled
System.err.println("Could not delete " + dead);
boolean result = true;
File[] files = dir.listFiles();
if (files != null) {
for (File child : files) {
if (child.isFile()) {
boolean deleted = child.delete();
if (!deleted && printErrorMessages) {
System.err.println("Could not delete " + child.getAbsolutePath());
}
result &= deleted;
} else if (child.isDirectory()) {
result &= removeDir(child, printErrorMessages);
}
} else {
removeDir(dead);
//dead.delete();
}
}
boolean deleted = dir.delete();
if (!deleted && printErrorMessages) {
System.err.println("Could not delete " + dir.getAbsolutePath());
}
result &= deleted;
return result;
}

View File

@@ -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;
}

View File

@@ -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) {