คำตอบของ Peter Lawrey นั้นยอดเยี่ยมเพราะมันง่ายและไม่ขึ้นอยู่กับสิ่งใดเป็นพิเศษและเป็นวิธีที่คุณควรทำ หากคุณต้องการสิ่งที่ลบไดเรกทอรีย่อยและเนื้อหาเช่นกันให้ใช้การสอบถามซ้ำ:
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()
วิธีการของมัน