前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java压缩文件夹工具类

java压缩文件夹工具类

原创
作者头像
在下是首席架构师
修改2023-11-30 10:13:01
9320
修改2023-11-30 10:13:01
举报
文章被收录于专栏:从入门到出门从入门到出门
代码语言:java
复制
import org.apache.commons.io.IOUtils;

import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

/**
 * 压缩包工具类
 *
 * @author xuyt
 * @date 2020/12/31 10:32
 */
public class ZipUtil {

    public static void compressZipfile(String sourceDir,String outputFile) throws IOException {
        ZipOutputStream zipFile = new ZipOutputStream(new FileOutputStream(outputFile));
        compressDirectoryToZipfile(sourceDir,sourceDir,zipFile);
        IOUtils.closeQuietly(zipFile);
    }

    private static void compressDirectoryToZipfile(String rootDir,String sourceDir,ZipOutputStream out) throws IOException {
        for (File file : new File(sourceDir).listFiles()) {

            if (file.isDirectory()) {
                //如果是一个空文件夹
                if (file.listFiles().length == 0) {
                    ZipEntry zipEntry = new ZipEntry(sourceDir.replace(rootDir, "") + file.getName() + "/");

                    out.putNextEntry(zipEntry);
                    out.closeEntry();
                } else {
                    compressDirectoryToZipfile(rootDir, sourceDir + file.getName() + File.separator, out);
                }
            } else {
                FileInputStream in = new FileInputStream(sourceDir + file.getName());
                try {
                    ZipEntry entry = new ZipEntry(sourceDir.replace(rootDir, "") + file.getName());
                    out.putNextEntry(entry);
                    IOUtils.copy(in, out);
                }catch (IOException e){
                    e.printStackTrace();
                }finally {
                    IOUtils.closeQuietly(in);
                }
            }
        }
    }
    public static void main(String[] args) throws IOException {

        ZipUtil.compressZipfile("D:\\工作文档\\培训管理系统-培训统计模块\\f15cf5d6182b43848550df9d58581f45\\",
                "D:\\工作文档\\培训管理系统-培训统计模块\\培训班材料.zip");

    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档