La respuesta de Peter Lawrey es excelente porque es simple y no depende de nada especial, y es la forma en que debe hacerlo. Si necesita algo que elimine los subdirectorios y sus contenidos también, use la recursividad:
void purgeDirectory(File dir) {
for (File file: dir.listFiles()) {
if (file.isDirectory())
purgeDirectory(file);
file.delete();
}
}
Para ahorrar subdirectorios y sus contenidos (parte de su pregunta), modifique de la siguiente manera:
void purgeDirectoryButKeepSubDirectories(File dir) {
for (File file: dir.listFiles()) {
if (!file.isDirectory())
file.delete();
}
}
O, como quería una solución de una línea:
for (File file: dir.listFiles())
if (!file.isDirectory())
file.delete();
Usar una biblioteca externa para una tarea tan trivial no es una buena idea a menos que necesite esta biblioteca para otra cosa de todos modos, en cuyo caso es preferible usar el código existente. Parece que está utilizando la biblioteca Apache de todos modos, así que use su FileUtils.cleanDirectory()
método.