Skip to content

Commit 9ef5b47

Browse files
committed
Clean up delete dir
1 parent 7135a40 commit 9ef5b47

File tree

1 file changed

+13
-32
lines changed

1 file changed

+13
-32
lines changed

app/src/processing/app/Util.java

Lines changed: 13 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -302,41 +302,22 @@ static public void copyDirNative(File sourceDir,
302302
/**
303303
* Remove all files in a directory and the directory itself.
304304
*/
305-
static public void removeDir(File dir) {
306-
if (dir.exists()) {
307-
removeDescendants(dir);
308-
if (!dir.delete()) {
309-
System.err.println("Could not delete " + dir);
310-
}
311-
}
312-
}
313-
314-
315-
/**
316-
* Recursively remove all files within a directory,
317-
* used with removeDir(), or when the contents of a dir
318-
* should be removed, but not the directory itself.
319-
* (i.e. when cleaning temp files from lib/build)
320-
*/
321-
static public void removeDescendants(File dir) {
322-
if (!dir.exists()) return;
323-
324-
String files[] = dir.list();
325-
for (int i = 0; i < files.length; i++) {
326-
if (files[i].equals(".") || files[i].equals("..")) continue;
327-
File dead = new File(dir, files[i]);
328-
if (!dead.isDirectory()) {
329-
if (!Preferences.getBoolean("compiler.save_build_files")) {
330-
if (!dead.delete()) {
331-
// temporarily disabled
332-
System.err.println("Could not delete " + dead);
333-
}
305+
static public boolean removeDir(File dir) {
306+
if (!dir.exists()) return true;
307+
308+
boolean result = true;
309+
File[] files = dir.listFiles();
310+
if (files != null) {
311+
for (File child : files) {
312+
if (child.isFile()) {
313+
result &= child.delete();
314+
} else if (child.isDirectory()) {
315+
result &= removeDir(child);
334316
}
335-
} else {
336-
removeDir(dead);
337-
//dead.delete();
338317
}
339318
}
319+
result &= dir.delete();
320+
return result;
340321
}
341322

342323

0 commit comments

Comments
 (0)