0

为了减少我的应用程序的总大小,我想将一些非常大的数据库作为 ZIP 文件分发,然后根据需要解压缩它们。是否有一种简单的方法可以确定 ZIP 中文件的大小,以便我提前知道设备上是否有空间甚至可以尝试解压缩其中一个?

ZIP 文件将只包含一个文件。是的,我可以提前测量大小并对其进行硬编码,但这很容易出错,因为我会定期更新数据库。

最好的问候,安德斯

4

2 回答 2

1

有一些用于处理 ZIP 文件的 3rd 方 Objective-C 库。这些将允许您查询 zip 文件的内容,而无需先解压缩它们。

查看ZipKitObjective-Zip

于 2012-11-19T20:29:20.443 回答
0

你也可以像这样使用zipzap

NSUInteger wantedFileSize = NSNotFound;
ZZArchive* archive = [ZZArchive archiveWithURL:zipFileURL error:nil];
for (ZZArchiveEntry entry in archive.entries)
  if ([entry.fileName isEqualToString:wantedFileName])
  {
     wantedFileSize = entry.uncompressedSize;
     break;
  }

这将很快,因为它只扫描 zip 文件的最后一个块以查找所需条目的未压缩大小,并且不进行任何解压缩。

于 2014-09-05T01:32:43.680 回答