Ответ Питера Лоури великолепен, потому что он прост и не зависит от чего-то особенного, и именно так вы должны это делать. Если вам нужно что-то, что также удаляет подкаталоги и их содержимое, используйте рекурсию:
void purgeDirectory(File dir) {
for (File file: dir.listFiles()) {
if (file.isDirectory())
purgeDirectory(file);
file.delete();
}
}
Чтобы сэкономить подкаталоги и их содержимое (часть вашего вопроса), измените следующим образом:
void purgeDirectoryButKeepSubDirectories(File dir) {
for (File file: dir.listFiles()) {
if (!file.isDirectory())
file.delete();
}
}
Или, так как вы хотели однострочное решение:
for (File file: dir.listFiles())
if (!file.isDirectory())
file.delete();
Использование внешней библиотеки для такой тривиальной задачи не очень хорошая идея, если в любом случае вам не нужна эта библиотека для чего-то другого, и в этом случае предпочтительнее использовать существующий код. Похоже, вы все равно используете библиотеку Apache, поэтому используйте ее FileUtils.cleanDirectory()
метод.