java对多级目录文件夹压缩并解压(亲测不乱码)

本文介绍了如何使用Apache Ant库在Java中进行多级目录文件夹的压缩和解压操作,确保过程中不出现中文路径乱码问题。同时,还提到了文件夹的递归删除方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件夹压缩与解压:

利用apache提供的ant.jar,提供对单个文件与目录的压缩,并支持是否需要创建压缩源目录、中文路径并且提供了测试类


import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
import org.apache.tools.zip.ZipOutputStream;

import java.io.*;
import java.util.Enumeration;
import java.util.zip.*;

/** 利用apache提供的ant.jar,提供对单个文件与目录的压缩,并支持是否需要创建压缩源目录、中文路径
 * @Title:
 * @Description:ZipCompress
 * @Version 1.2
 */
public class ZipCompress {
   

    private static boolean isCreateSrcDir = true;//是否创建源目录

    /**
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) throws IOException {
   
        String src = "D:/组合件级/2";//指定压缩源,可以是目录或文件
        String decompressDir = "D:/test/最终目的";//解压路径
        String archive = "D:/组合件级/2.zip";//压缩包路径
        String comment = "无";//压缩包注释
        //----压缩文件或目录
        writeByApacheZipOutputStream(src,archive,comment);
        /*
         * 读压缩文件,注释掉,因为使用的是apache的压缩类,所以使用java类库中
         * 解压类时出错,这里不能运行
         */
       // readByZipInputStream(archive, decompressDir);
        //----使用apace ZipFile读取压缩文件
      //  readByApacheZipFile(archive, decompressDir);
    }
    /**对文件夹或者文件进行压缩
     *
     * @Time 2012-3-9 上午09:32:35 create
     * @param src
     * @param archive
     * @param comment
     * @throws FileNotFoundException
     * @throws IOException
     * @author jiangzhenming
     */
    public static void writeByApacheZipOutputStream(String src, String archive,
                                                    String comment) throws FileNotFoundException, IOException {
   
        //----压缩文件:
        FileOutputStream f = new FileOutputStream(archive);
        //使用指定校验和创建输出流
        CheckedOutputStream csum = new CheckedOutputStream(f, new CRC32());

        ZipOutputStream zos = new 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值