How to delete a folder with files using Java
Just a one-liner.
import org.apache.commons.io.FileUtils;FileUtils.deleteDirectory(new File(destination));
Documentation here
Java isn't able to delete folders with data in it. You have to delete all files before deleting the folder.
Use something like:
String[]entries = index.list();for(String s: entries){ File currentFile = new File(index.getPath(),s); currentFile.delete();}
Then you should be able to delete the folder by using index.delete()
Untested!
This works, and while it looks inefficient to skip the directory test, it's not: the test happens right away in listFiles()
.
void deleteDir(File file) { File[] contents = file.listFiles(); if (contents != null) { for (File f : contents) { deleteDir(f); } } file.delete();}
Update, to avoid following symbolic links:
void deleteDir(File file) { File[] contents = file.listFiles(); if (contents != null) { for (File f : contents) { if (! Files.isSymbolicLink(f.toPath())) { deleteDir(f); } } } file.delete();}