weaver 2004/01/15 08:05:23 Modified: portal/src/java/org/apache/jetspeed/util DirectoryUtils.java Log: Simplified the rmdir directory deletion algorithm. Using example algorithm found in the Java Developers Almanac: http://javaalmanac.com/egs/java.io/DeleteDir.html Revision Changes Path 1.2 +58 -63 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/util/DirectoryUtils.java Index: DirectoryUtils.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/util/DirectoryUtils.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- DirectoryUtils.java 28 Jul 2003 23:47:53 -0000 1.1 +++ DirectoryUtils.java 15 Jan 2004 16:05:23 -0000 1.2 @@ -74,41 +74,36 @@ public static void main(String[] args) { - DirectoryUtils.rmdir(args[0]); + DirectoryUtils.rmdir(new File(args[0])); } - /* + /** * Removes a directory and all subdirectories and files beneath it. * * @param directory The name of the root directory to be deleted. * @return boolean If all went successful, returns true, otherwise false. * */ - public static final boolean rmdir(String directory) + public static final boolean rmdir(File dir) { - try - { - File dir = new File(directory); - if (!dir.isDirectory()) - { - dir.delete(); - return true; - } + if (dir.isDirectory()) + { + String[] children = dir.list(); + for (int i = 0; i < children.length; i++) + { + boolean success = rmdir(new File(dir, children[i])); + if (!success) + { + return false; + } + } + } - deleteTraversal(directory); - - dir.delete(); - return true; - - } - catch (Exception e) - { - log.error("Error in rmdir utility:" , e); - return false; - } + // The directory is now empty so delete it OR it is a plain file + return dir.delete(); } - /* + /** * Recursive deletion engine, traverses through all subdirectories, * attempting to delete every file and directory it comes across. * NOTE: this version doesn't do any security checks, nor does it @@ -117,45 +112,45 @@ * @param path The directory path to be traversed. * */ - private static void deleteTraversal(String path) - { - File file = new File(path); - if (file.isFile()) - { - try - { - file.delete(); - } - catch (Exception e) - { - log.error("Failed to Delete file: " + path + " : " , e); - file.deleteOnExit(); // try to get it later... - } - } - else if (file.isDirectory()) - { - if (!path.endsWith(File.separator)) - path += File.separator; - - String list[] = file.list(); - - // Process all files recursivly - for(int ix = 0; list != null && ix < list.length; ix++) - deleteTraversal(path + list[ix]); - - // now try to delete the directory - try - { - file.delete(); - } - catch (Exception e) - { - log.error("Failed to Delete directory: " + path + " : " , e); - file.deleteOnExit(); // try to get it later... - } - - } - } +// private static void deleteTraversal(String path) +// { +// File file = new File(path); +// if (file.isFile()) +// { +// try +// { +// file.delete(); +// } +// catch (Exception e) +// { +// log.error("Failed to Delete file: " + path + " : " , e); +// file.deleteOnExit(); // try to get it later... +// } +// } +// else if (file.isDirectory()) +// { +// if (!path.endsWith(File.separator)) +// path += File.separator; +// +// String list[] = file.list(); +// +// // Process all files recursivly +// for(int ix = 0; list != null && ix < list.length; ix++) +// deleteTraversal(path + list[ix]); +// +// // now try to delete the directory +// try +// { +// file.delete(); +// } +// catch (Exception e) +// { +// log.error("Failed to Delete directory: " + path + " : " , e); +// file.deleteOnExit(); // try to get it later... +// } +// +// } +// } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
