2.x 版本的ZIP4j壓縮和解壓使用

添加POM, 使用的是 2.x 版本, 和1.x 差別很大

        <dependency>
            <groupId>net.lingala.zip4j</groupId>
            <artifactId>zip4j</artifactId>
            <version>2.5.2</version>
        </dependency>

示例代碼如下

    public static void main(String[] args) throws Exception {
        String password = "password";

        // 解壓
        try {
            File file1 = new File("C:\\Users\\j6153\\Downloads\\1.zip");
            String target = "C:\\Users\\j6153\\Downloads\\1";
            
            ZipFile zipFile = new ZipFile(file1);
            // 編碼格式
            Charset gbk = Charset.forName("GBK");
            zipFile.setCharset(gbk);
            //zipFile.se
            if (zipFile.isEncrypted()) {
                zipFile.setPassword(password.toCharArray());
            }
            zipFile.extractAll(target);

        } catch (ZipException e) {
            e.printStackTrace();
        }

        // 壓縮
        try {
            File file2 = new File("C:\\Users\\j6153\\Downloads\\123.zip");
            File file3 = new File("C:\\Users\\j6153\\Downloads\\1");

            //設置參數
            ZipParameters para = new ZipParameters();
            //設置壓縮方式,默認是COMP_DEFLATE
            para.setCompressionMethod(CompressionMethod.DEFLATE);
            //設置壓縮級別,默認爲0(即不壓縮)
            para.setCompressionLevel(CompressionLevel.NORMAL);
            // 是否密碼
            para.setEncryptFiles(true);
            // 加密方式
            para.setEncryptionMethod(EncryptionMethod.ZIP_STANDARD);
            ZipFile zipFile = new ZipFile(file2);
            zipFile.setPassword(password.toCharArray());
            Charset gbk = Charset.forName("GBK");
            zipFile.setCharset(gbk);
            zipFile.createSplitZipFileFromFolder(file3, para, false, 0L);
        } catch (ZipException e) {
            e.printStackTrace();
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章