0

アプリの合計サイズを抑えるために、いくつかの非常に大きなデータベースを ZIP ファイルとして配布し、必要に応じて解凍したいと考えています。ZIP 内のファイルのサイズを特定する簡単な方法はありますか? そのため、デバイスにファイルの 1 つを解凍するだけのスペースがあるかどうかを事前に知ることができますか?

ZIP ファイルには 1 つのファイルのみが含まれます。はい、事前にサイズを測定してハードコードすることはできますが、定期的にデータベースを更新するため、エラーが発生しやすくなります。

よろしく、 アンダース

4

2 に答える 2

1

ZIP ファイルを操作するためのサードパーティの Objective-C ライブラリがいくつかあります。これらを使用すると、最初にそれらを解凍する必要なく、zip ファイルの内容を調べることができます。

ZipKitまたはObjective-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 に答える