如何解决一次性删除带有子文件的文件夹

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

需求:./a 目录下有若干文件夹&&若干文件,文件夹层级不可知,且文件个数不可知,在这种情况写,写一个方法,删除a文件夹。

一、需求分析

  1. 首先需要知道文件的类型是否是一个文件夹;
  2. 如果是一个文件则可以用 file.delete() 方法去直接删除;
  3. 如果该文件的类型是一个文件夹则其规则为:文件夹中有文件时(不论多少个),都无法删除当前文件夹;
  4. 那么首先需要知道这个文件夹中有多少个文件,去判断他是不是一个空文件夹;
  5. 如果是空文件夹就直接删除,如果非空文件夹就或这个文件的子集并遍历
  6. 在下一个文件夹执行一样的判断

二、思考难点

  1. 如何遍历文件夹中的所有文件
  2. 得到进入子类中文件夹的子类并遍历其中的文件

二、代码

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(); //如果不是文件夹就马上删掉
    }
}

总结

  1. 最重要的一点是没想到可以在方法中反复调用自己,这次记下来了
  2. 对于需求思路分析还不够清晰
  3. 对于File类的语法记得还不是很牢固,需要用到.isDirectory()没有及时想到
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值