Objective-CでZipファイルを解凍する方法
zipファイルをダウンロードして、解凍する必要があったため、メモ
まずは、以下を使います。
http://code.google.com/p/ziparchive/
これをダウンロードしたら、プロジェクトに追加して、
libz.1.2.3.dylib
も追加します。
あと、展開するZIPファイルもプロジェクトに入れときます。
NSString *path = [[NSBundle mainBundle] pathForResource:@"wallpaper" ofType:@"zip"]; NSString *outdir = [NSHomeDirectory() stringByAppendingPathComponent:@"tmp"]; NSLog(@"%@",path); ZipArchive *za = [[[ZipArchive alloc] init] autorelease]; [za UnzipOpenFile:path]; BOOL ret = [za UnzipFileTo:outdir overWrite:YES]; if(ret==NO) { // エラー処理 NSLog(@"zip archive 解凍時にエラーが発生"); } [za UnzipCloseFile]; NSString *imagePath = [outdir stringByAppendingPathComponent:@"Dark-Souls_Wallpaper_1280X800.jpg"]; NSLog(@"[%@]",imagePath); NSURL *url = [[NSURL alloc] initFileURLWithPath:imagePath]; NSData *data = [[NSData alloc] initWithContentsOfURL:url]; UIImage *image = [[UIImage alloc] initWithData:data]; UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; [self.view addSubview:imageView]; imageView.image = image; [imageView release]; [url release]; [data release]; [image release];
解凍したファイルは、outdirで指定しているように、そのアプリ内のtmpディレクトリに展開されます。
シミュレータのディレクトリで確認できる。
展開後、ファイル名を指定してURLに変換し、それをデータとして受け取り、UIImageにする、と。
これで完了です。
【参考】
Objective-CでZipファイルを解凍してそれを活用する方法 | ssdkfk - http://ssdkfk.wordpress.com/2011/10/03/objective-c%E3%81%A7zip%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E8%A7%A3%E5%87%8D%E3%81%97%E3%81%A6%E3%81%9D%E3%82%8C%E3%82%92%E6%B4%BB%E7%94%A8%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/
【こっちもある】
iOSアプリ開発達人レシピ100より。
mattconnolly/ZipArchive - https://github.com/mattconnolly/ZipArchive
以上、ピザにはタバスコは付けない派の堀でした。