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 thin
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).
Looking at the docs:
If this pathname denotes a directory, then the directory must be empty in order to be deleted.
Did you make sure that the directory is empty (no hidden files either) ?
The directory must be empty to delete it. If it's not empty, you need to delete it recursively with File.listFiles() and File.delete()
Why to invent a wheel with methods to delete recursively? Take a look at apache commons io. https://commons.apache.org/proper/commons-io/javadocs/api-1.4/
FileUtils.deleteDirectory(dir);
OR
FileUtils.forceDelete(dir);
That is all you need. There is also plenty of useful methods to manipulate files...
Two other possibilities (besides the directory not being empty):