Recursively remove a directory even if it contains other files or directories . Returns true when the directory and all its contents are successfully removed, else false.
(File dir)
| 470 | * contents are successfully removed, else false. |
| 471 | */ |
| 472 | public static boolean rmdir(File dir) { |
| 473 | if(dir == null || ! dir.isDirectory()) // only delete directories |
| 474 | return false; |
| 475 | |
| 476 | // list all the members of the dir |
| 477 | String[] members = dir.list(); |
| 478 | |
| 479 | // return value indicating success or failure |
| 480 | boolean succeeded = true; |
| 481 | |
| 482 | // for each member, if is dir then recursively delete; if file then delete |
| 483 | for(int i = 0; i<members.length; i++) { |
| 484 | File member = new File(dir, members[i]); |
| 485 | |
| 486 | if(member.isFile()) { |
| 487 | if(! member.delete()) |
| 488 | succeeded = false; |
| 489 | } else { |
| 490 | if(! Files.rmdir(member)) |
| 491 | succeeded = false; |
| 492 | } |
| 493 | } |
| 494 | |
| 495 | // delete the directory itself |
| 496 | dir.delete(); |
| 497 | |
| 498 | // return status value |
| 499 | return succeeded; |
| 500 | } // rmdir(File) |
| 501 | |
| 502 | /** |
| 503 | * This method updates an XML element with a new set of attributes. |
no test coverage detected