web-dev-qa-db-ja.com

iOSでファイルをダウンロードして解凍する

辞書の発音に使用する多くのファイルオーディオを含むフォルダーが含まれているZipファイルをダウンロードします。 ASIHTTPRequestを使用してダウンロードしますが、問題は「そのファイルを解凍する方法がわかりません」です。 SSZipArchiveZipArchiveの両方を使用しようとしましたが、どちらもminizipに基づいていますが、コードをコンパイルするとエラーが発生しましたUndefined symbols for architecture i386: "_OBJC_CLASS_$_ZipArchive", referenced from: objc-class-ref in AppDelegate.o。アドバイスをお願いします

27
Huy Tran

私はZipArchiveを使用して、過去に成功しました。非常に軽量で使いやすく、パスワード保護、Zip内の複数のファイル、圧縮および解凍をサポートしています。

基本的な使用法は次のとおりです。

NSString *filepath = [[NSBundle mainBundle] pathForResource:@"ZipFileName" ofType:@"Zip"];
ZipArchive *zipArchive = [[ZipArchive alloc] init];
[zipArchive UnzipOpenFile:filepath Password:@"xxxxxx"];
[zipArchive UnzipFileTo:{pathToDirectory} overWrite:YES];
[zipArchive UnzipCloseFile];
[zipArchive release];

このパッケージに関するその他の例 here

また、いくつかのプロジェクトでSSZipArchiveを試しました。以下の行は、Zipファイルを解凍します。

[SSZipArchive unzipFileAtPath:path toDestination:destination];
49

IOS 7で開始するには、AppleファイルをネイティブにZip/unzipする機能を導入しました。メール、メッセージ、エアドロップ、「開く」でZipファイルを送信するオプションもあります。キーは次のとおりです。ZipファイルはiOSでサポートする必要があります一部はサポートしており、一部はサポートしていません。最初のステップ:ファイルがサポートされているかどうかを確認します。開いてみてください。「Waiting ...」で止まっている場合は、おそらくはサポートされていません。別のライブラリを試すか、これが事実です。

これをプログラムで行う現在必要サードパーティライブラリを使用してZipファイルを保存し、抽出します。多くの人/企業がそれらを使用することを避けるため、これは理想的ではありません。そうは言っても、答えは正解でした。ZipArchiveは、特に今ではSwiftをサポートしているため、優れたサードパーティツールです。 Appleがネイティブライブラリを導入するまで使用することをお勧めします。

2
Henry F