java 递归解压zip压缩包

1.第一步,添加工具包依赖

        <!-- https://mvnrepository.com/artifact/net.lingala.zip4j/zip4j -->
        <dependency>
            <groupId>net.lingala.zip4j</groupId>
            <artifactId>zip4j</artifactId>
            <version>2.9.0</version>
        </dependency>

 2.第二步,编写代码

 // 递归解压
    public static void unzipAll(String zipFileFullPath,String destPath) throws IOException {

        if (null == destPath){ //如果destPath为空 说明是子文件夹 直接使用传进来的 zipFileFullPath
            destPath = zipFileFullPath;
        }
        File file = new File(zipFileFullPath);
        ZipFile zipFile = new ZipFile(file);
        if (destPath.endsWith(".zip")||destPath.endsWith(".ZIP")){
            destPath = zipFileFullPath.substring(0, zipFileFullPath.length() - 4);
        }
        new File(destPath).mkdir();
        zipFile.setCharset(Charset.forName("GBK"));
        zipFile.extractAll(destPath);
        //file.delete();
        // 遍历
        File parentDir = new File(destPath);
        List<File> fileList = new ArrayList<>();
        listFile(parentDir,fileList);
        for (File fileItem : fileList){
           if (!fileItem.isDirectory()&& (destPath.endsWith(".zip")||destPath.endsWith(".ZIP"))){
               unzipAll(fileItem.getAbsolutePath(),null);
           }
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值