提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
需求:./a 目录下有若干文件夹&&若干文件,文件夹层级不可知,且文件个数不可知,在这种情况写,写一个方法,删除a文件夹。
一、需求分析
- 首先需要知道文件的类型是否是一个文件夹;
- 如果是一个文件则可以用
file.delete()
方法去直接删除; - 如果该文件的类型是一个文件夹则其规则为:文件夹中有文件时(不论多少个),都无法删除当前文件夹;
- 那么首先需要知道这个文件夹中有多少个文件,去判断他是不是一个空文件夹;
- 如果是空文件夹就直接删除,如果非空文件夹就或这个文件的子集并遍历
- 在下一个文件夹执行一样的判断
二、思考难点
- 如何遍历文件夹中的所有文件
- 得到进入子类中文件夹的子类并遍历其中的文件
二、代码
package file;
import java.io.File;
public class Delete {
void delete(File file){
File[] files = file.listFiles(); //获取该文件的所有子类并保存到一个File类型数组中
if (file.isDirectory()){ //如果该文件是一个文件夹就遍历其中所有子项
for (File s :
files) {
delete(s); //是我未知的领域一定要记住,在方法中调用自己,
//如果在遍历过程中遇到了文件则继续往下走到file.delete()行
//如果不是文件则调用自己的方法并把文件夹加入遍历,这样就可以继续遍历子项中的文件夹
}
}
file.delete(); //如果不是文件夹就马上删掉
}
}
总结
- 最重要的一点是没想到可以在方法中反复调用自己,这次记下来了
- 对于需求思路分析还不够清晰
- 对于File类的语法记得还不是很牢固,需要用到.isDirectory()没有及时想到