トップ «前の日記(2012-02-29) 最新 次の日記(2012-03-02)» 編集

Cocoa練習帳

iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど

2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|

2012-03-01 [Mac][iOS]minizip ファイルの圧縮と解凍(その2)

前回の続き。得られたZipファイル内のパスからファイルのデータを取り出す。

        unzLocateFile(file, filename, 0);
        unzOpenCurrentFile(file);
        NSMutableData   *data = [NSMutableData data];
        void            *buffer = (void *)malloc(BUFSIZ);
        int             len;
        while ((len = unzReadCurrentFile(file, buffer, BUFSIZ)) != 0) {
            [data appendBytes:buffer length:len];
        }
        free(buffer);
        printf("----------\n");
        for (NSUInteger i = 0U; i < [data length]; i++) {
            printf("%c", ((char *)[data bytes])[i]);
        }
        printf("\n----------\n");
        unzCloseCurrentFile(file);

_ ソースコード

GitHubからどうぞ。
https://github.com/murakami/workbook/tree/master/mac/Zip

_ 関連情報

zlib
A Massively Spiffy Yet Delicately Unobtrusive Compression Library
Minizip
Zip and UnZIp additionnal library
ZipArchive
An Objective C class for zip/unzip on iPhone and Mac OSX
objective-zip
An iOS wrapper for ZLib and MiniZip
Objective-CでZIPアーカイブを読み取る
@marvelphさんのブログです。

トップ «前の日記(2012-02-29) 最新 次の日記(2012-03-02)» 編集