无法使用SSZipArchive在iOS9中解压缩大型zip文件(3.3GB)

时间:2016-01-27 08:55:26

标签: python ios zip unzip zipfile

作为标题,我使用python zipfile模块从我的Django后端服务器(托管在Ubuntu 14.04.1 LTS上)创建了zip文件:

zipfile.ZipFile(dest_path, mode='w', compression=zipfile.ZIP_DEFLATED, 
                allowZip64=True)

我设法在Finder中使用我的Mac打开它,但使用SSZipArchive库没有成功。我尝试使用最新的master分支提交,并标记了v1.0.1和v0.4.0。

使用v0.4.0,我在unzip.c的第1506行收到错误:

    if (unz64local_CheckCurrentFileCoherencyHeader(s,
                                                   &iSizeVar, 
                                                   &offset_local_extrafield,&size_local_extrafield)!=UNZ_OK)
        return UNZ_BADZIPFILE;

并且每次使用相同的currentFileNumber时都会在同一个文件上解压缩。

有没有人得到任何线索?

P.S。我认为SSZipArchive应该支持Zip64存档文件,因为我在他们的github存储库上询问了question

更新 [20160129] 我对zip文件执行了zipinfo检查,并输出以下内容:

...
-rw-r--r--  2.0 unx     1992 b- defN 26-Nov-15 14:59 <file_name>
-rw-r--r--  2.0 unx      925 b- defN 26-Nov-15 14:59 <file_name>
-rw-r--r--  2.0 unx     1194 b- defN 26-Nov-15 14:59 <file_name>
-rw-r--r--  2.0 unx       72 b- defN 26-Nov-15 14:52 <file_name>
-rw-r--r--  2.0 unx      289 b- defN 18-Jan-16 11:27 <file_name>
-rw-r--r--  2.0 unx     1541 b- defN 18-Jan-16 11:27 <file_name>
-rw-r--r--  2.0 unx      295 b- defN 18-Jan-16 11:27 <file_name>
-rw-r--r--  2.0 unx 449619181 b- defN 18-Jan-16 11:26 <file_name>
-rw-r--r--  4.5 unx 73128184 bx defN 18-Jan-16 11:26 <file_name>
-rw-r--r--  4.5 unx 69444488 bx defN 18-Jan-16 11:26 <file_name>
-rw-r--r--  4.5 unx   671440 bx defN 18-Jan-16 11:26 <file_name>
-rw-r--r--  4.5 unx 20189549 bx defN 18-Jan-16 11:27 <file_name>
-rw-r--r--  4.5 unx      197 bx defN 18-Jan-16 11:26 <file_name>
-rw-r--r--  4.5 unx  1379396 bx defN 18-Jan-16 11:26 <file_name>
...

1 个答案:

答案 0 :(得分:0)

经过十几次试错,我发现python zipfile包生成的zip文件存在问题。如果我使用版本

的Ubuntu服务器提供的zip命令
  

版权所有(c)1990-2008 Info-ZIP - Type&#39; zip&#34; -L&#34;&#39;用于软件许可。

     

这是Zip 3.0(2008年7月5日),由Info-ZIP。

存档4GB的大数据,SSZipArchive可以成功解压缩zip包。

我用zipinfo测试了zip文件,发现:

{{1}}