zip4j不支持压缩类型例外:Android

时间:2013-11-27 09:31:09

标签: android zip4j

我正在尝试使用zip4j库为Android解压缩受密码保护的zip文件。但它给出了不支持的压缩类型异常。我搜索了很多,但找不到任何理由或解决方案。

所以我的问题是:

  1. 为什么我得到这个例外?
  2. 如何解决这个问题?我应该使用任何其他图书馆吗?

    try {
            File src = new File("/sdcard/" + filename);
    
            ZipFile zipFile = new ZipFile(src);
    
            if (zipFile.isEncrypted()) {
    
                zipFile.setPassword("mypassword");
    
            }
    
            File destFile=new File ("/sdcard/tests_images_Xdata");
    
            if(!destFile.isDirectory()){ 
    
                destFile.mkdir();               
                String dest = new String("/sdcard/tests_images_Xdata");
                zipFile.extractAll(dest);
    
               }
    } 
               catch (ZipException e) {
               e.printStackTrace();   
    
         }
    

2 个答案:

答案 0 :(得分:0)

首先,我认为您的代码中存在一些错误,

if(!destFile.isDirectory()){ 

仅当destFile是文件时才为true,其次必须使用后缀“zip”设置压缩文件,这意味着您的变量文件名必须包含“.zip”。

答案 1 :(得分:0)

Zip4j支持Store(无压缩)或Deflate压缩算法。最有可能的是,使用Zip4j不支持的其他压缩算法压缩了您遇到此问题的zip文件。

要查看zip文件中文件的压缩类型,请在7-Zip中打开zip文件 - >右键单击文件 - >属性。包含“Method”的字段显示使用的压缩类型。

要使用带zip4j的zip文件,您必须确保使用deflate或Store(无压缩)压缩它

enter image description here