一、需求
删除非空文件夹
二、分析
1、File默认不可以删除非空文件夹;
2、我们需要遍历文件夹,先删除里面的内容,再删除自己。
三、代码
/**
* 删除非空文件夹
* @param dir
*/
public static void deleteDir(File dir){
// 1.如果 dir == null 或者 路径不存在
if (dir == null || !dir.exists() ){
return; // 代表无法删除
}
// 2.dir存在,如果是文件,直接删除
if (dir.isFile()){
dir.delete();
return;
}
// 3.dir存在,且是文件夹,获取当前目录下的全部一级文件对象
File[] files = dir.listFiles();
// 如果无权限删除,则直接返回
if (files == null){
// 无权限删除
return;
}
// 有内容的文件夹: 先删除里面的内容,再删除自己
for (File file : files) {
if (file.isFile()){
file.delete();
}else{
deleteDir(file);
}
}
// 删除自己
dir.delete();
}
四、写在最后
学习过程中的简单练习,若对代码有疑问,欢迎来讨论!看到了一定回复!