Index: E:/JavaDev/groovy/svn/src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java =================================================================== --- E:/JavaDev/groovy/svn/src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java (revision 11194) +++ E:/JavaDev/groovy/svn/src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java (working copy) @@ -7987,6 +7987,51 @@ } /** + * Deletes a directory with all contained files and subdirectories. + *

The method returns + *

+ *

+ * + * @return true if deletion was successful + */ + public static boolean deleteDir(final File self) { + if (!self.exists()) + return true; + if (!self.isDirectory()) + return false; + + File[] files = self.listFiles(); + if (files == null) + // couldn't access files + return false; + + // delete contained files + boolean result = true; + for (int i = 0; i < files.length; i++) { + File file = files[i]; + if (file.isDirectory()) { + if(!deleteDir(file)) + result = false; + } + else { + if (!file.delete()) + result = false; + } + } + + // now delete directory itself + if(!self.delete()) + result = false; + + return result; + } + + /** * Allows a simple syntax for using timers. This timer will execute the * given closure after the given delay. *