Java中的File.delete()方法只能删除文件或者空文件夹,无法删除非空文件夹,当是非空文件夹时,方法返回false,下面写一个工具类,采用递归方式,实现删除非空文件夹。
import java.io.File;
public class DeleteFolderUtil {
public static boolean deleteFolder(File file){
// 当传入的是文件时,直接删除
if(file.isFile())
return file.delete();
// 当传入的是文件夹时
File[] files = file.listFiles();
// 空文件夹,直接删除
if(files == null || files.length == 0)
return file.delete();
// 非空文件夹,遍历删除
for(File f : files){
if(f.isFile()) // 文件直接删除
f.delete();
else if (f.isDirectory()) // 文件夹递归删除
deleteFolder(f);
}
// 最后删除最外层空文件夹
return file.delete();
}
}