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