Câu trả lời của Peter Lawrey rất hay vì nó đơn giản và không phụ thuộc vào điều gì đặc biệt, và đó là cách bạn nên làm. Nếu bạn cần một cái gì đó loại bỏ các thư mục con và nội dung của chúng, hãy sử dụng đệ quy:
void purgeDirectory(File dir) {
for (File file: dir.listFiles()) {
if (file.isDirectory())
purgeDirectory(file);
file.delete();
}
}
Để phụ các thư mục con và nội dung của chúng (một phần câu hỏi của bạn), hãy sửa đổi như sau:
void purgeDirectoryButKeepSubDirectories(File dir) {
for (File file: dir.listFiles()) {
if (!file.isDirectory())
file.delete();
}
}
Hoặc, vì bạn muốn một giải pháp một dòng:
for (File file: dir.listFiles())
if (!file.isDirectory())
file.delete();
Sử dụng một thư viện bên ngoài cho một nhiệm vụ tầm thường như vậy không phải là một ý tưởng tốt trừ khi bạn cần thư viện này cho một cái gì đó khác, trong trường hợp đó là thích hợp hơn để sử dụng mã hiện có. Dường như bạn đang sử dụng thư viện Apache, vì vậy hãy sử dụng FileUtils.cleanDirectory()
phương thức của nó .