结合递归思想,进行全目录删除

  1. 使用java.io.File类,结合递归思想,进行全目录删除
    目录结构为如下(尽量不要在c盘中测试哈)
    firstLevel目录中,包含一个secondLevel目录和a1.txt和b1.java文件
    secondLevel目录中包含dir1和dir2两个目录,和a2.txt和b2.java文件
    dir1目录中包含a3.txt和b3.java文件
    dir2目录是一个空目录
    要求删除firstLevel目录
package com.homework.homework0728;

import java.io.File;

/**
 * @Author jinman1012@qq.com   2020/7/28 20:25
 * @Version 1.0
 */
public class Problem {
    public static void main(String[] args) {
        String path = "D:\\test\\firstLevel";
        File file = new File(path);
        delDir(file);
    }

    public static void delDir(File file) {
        File[] fileNames = file.listFiles();
        //null防止当fileNames是文件时,listFiles返回的时null,不加null判断fileNames.length报空指针
        //fileNames.length为0说明file底下已经没有目录或者文件了,可以直接删
        if(fileNames == null || fileNames.length == 0) {
            //递归出口  接收27行传过来的文件类型数组的对象
            file.delete();
            return;
        }
        //说明当前目录下还有子目录或者文件  递归操作
        for (int i = 0; i < fileNames.length; i++) {
            //删除当前目录下的所有文件和目录
            delDir(fileNames[i]);
            //如果这个文件对象是目录的话,删除,不是的话进行回归或结束~
            if(fileNames[i].isDirectory()){
                fileNames[i].delete();
            }
        }
        //原file目录下的所有子目录或子子目录及文件已删除 可直接删除原目录
        file.delete();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值