问题:
在Java中File类对象如果是目录,当这个目录不为空时,调用delete方法并不会成功删除
解决方案1:使用FileUtils工具类
File tempDir = new File("/test");
if (tempDir.exists()) {
deleteAll(tempDir);
FileUtils.deleteQuietly(tempDir);
}
解决方案2:使用递归清空目录并删除文件夹
这种清空适合没有导入FileUtils工具类的情况
public static void deleteAll(File file) {
if (file.isFile() || file.list().length == 0) {
file.delete();
} else {
for (File f : file.listFiles()) {
deleteAll(f); // 递归删除每一个文件
}
file.delete(); // 删除文件夹
}
}