zlib が使える。ライブラリは Mac OS X 標準の開発環境に含まれている。
- Other Linker Flags に「-lz」を付け加える。
- http://www.gzip.org/zlib/ から最新版のソースをダウンロードして、「contrib/minizip/」フォルダの中の iowin32.c、iowin32.h、ChangeLogUnzip、Makefile 以外のファイルをプロジェクトに追加する。
- 利用する場所で、zip.h / unzip.h をインクルードする。
などなど。
NSString *filePath = ...;
unsigned char pathBufferPATH_MAX;
unz_file_info fileInfo;
unzFile zipFile = unzOpen(filePath cString);
unzGoToFirstFile(zipFile);
while (true) {
unzGetCurrentFileInfo(zipFile, &fileInfo, pathBuffer, PATH_MAX, NULL, 0, NULL, 0);
// ...
if (unzGoToNextFile(zipFile) != UNZ_OK) {
break;
}
}
unzClose(zipFile);
なお、日本語パスが通らない場合の簡単な対処方法は、/tmp フォルダなどに time(NULL) などを利用して英語名のシンボリックリンクを作成して、それをオープンすることである。
コメントを書く