Відповідь Пітера Лодрі чудова, тому що вона проста і не залежить від нічого особливого, і це так, як ви повинні це зробити. Якщо вам потрібно щось, що також видаляє підкаталоги та їх вміст, використовуйте рекурсію:
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()
метод.