javajava-io

not able to delete the directory through Java


In my application I have written the code to delete the directory from drive but when I inspect the delete function of File it doesn't delete the file. I have written some thing like this

//Code to delete the directory if it exists
File directory = new File("c:\\Report\\");
if(directory.exists())
    directory.delete(); 

The directory is not in use: still it is not able to delete the directory.


Solution

  • in Java, directory deletion is possible only for empty directory, which leads to methods like the following :

    /**
     * Force deletion of directory
     * @param path
     * @return
     */
    static public boolean deleteDirectory(File path) {
        if (path.exists()) {
            File[] files = path.listFiles();
            for (int i = 0; i < files.length; i++) {
                if (files[i].isDirectory()) {
                    deleteDirectory(files[i]);
                } else {
                    files[i].delete();
                }
            }
        }
        return (path.delete());
    }
    

    This one will delete your folder, even if non-empty, without troubles (excepted when this directory is locked by OS).