Java Delete Directory
Java File delete()
method deletes a file or an empty directory. However, if directory is not empty, it doesn’t delete it and returns false.
We will use delete() function recursively to delete a directory/folder in java program.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
package com.journaldev.files; import java.io.File; /** * This utility class can be used to delete * folders recursively in java * @author pankaj */ public class DeleteFolderRecursively { public static void main(String[] args) { String folder = "/Users/pankaj/tmp"; //delete folder recursively recursiveDelete(new File(folder)); } public static void recursiveDelete(File file) { //to end the recursive loop if (!file.exists()) return; //if directory, go inside and call recursively if (file.isDirectory()) { for (File f : file.listFiles()) { //call recursively recursiveDelete(f); } } //call delete to delete files and empty directory file.delete(); System.out.println("Deleted file/folder: "+file.getAbsolutePath()); } } |
Here we are using delete() to delete the folder contents and if it’s directory, we are recursively calling recursiveDelete
method.
Here is the output of the above program which deletes the directory.
1 2 3 4 5 6 7 8 9 10 11 12 |
<span style="color: #008000;"><strong><code> Deleted file/folder: /Users/pankaj/tmp/.DS_Store Deleted file/folder: /Users/pankaj/tmp/data/data.dat Deleted file/folder: /Users/pankaj/tmp/data/data.sql Deleted file/folder: /Users/pankaj/tmp/data Deleted file/folder: /Users/pankaj/tmp/DB.xml Deleted file/folder: /Users/pankaj/tmp/item.xsd Deleted file/folder: /Users/pankaj/tmp/ms/data.txt Deleted file/folder: /Users/pankaj/tmp/ms/project.doc Deleted file/folder: /Users/pankaj/tmp/ms Deleted file/folder: /Users/pankaj/tmp </code></strong></span> |
You can use this utility method to delete a non-empty directory.