2014년 4월 18일 금요일

[iOS] ZipArchive를 사용해서, Zip파일을 Unzip합니다.

iOS기기에서 zip으로 압축된 데이터를 다운 받고, 그것을 풀어야(Unzip)할 경우가 있습니다.
이 경우, ZipArchive를 이용해서 해결할 수 있습니다.

[ZipArchive는?]

오픈소스 코드인 MinZip을 기반으로 zip파일을 압축/해지를 iOS에서 사용할 수 있도록, Objective-C Class로 만들어 놓은 것입니다.

[어디서 구할 수 있나요?]

구글 코드사이트에서 나와 있습니다. (https://code.google.com/p/ziparchive/)
설명도 위 사이트에 자세히 나와 있습니다.


[사용하기 위해서]

1. 라이브러리를 등록합니다.
 프로젝트 설정에서 Framwork 등록하는 부분에서 아래와 같이 libz.dylib를 추가합니다.


2. ZipArchive 파일을 프로젝트에 추가합니다.
 위 사이트에서 download 받아서, 프로젝트에 추가합니다.


[ 압축파일을 풀려면 어떻게 해야 되나요?]

ZipArchive의 인스턴스를 사용해서, 파일을 열고, Unzip 하고, 파일을 닫으면 됩니다.
압축을 푸는 것이 리소스를 많이 잡아먹으니, 파일을 이용하는 것 같습니다.
source code
- (void)UnzipFile:(NSString*)zipFile to:(NSString *)destFile
{
    ZipArchive *zip = [[ZipArchive alloc]init];
    if ([zip unzipOpenFile:zipFile]) {
       BOOL ret = [zip unzipFileTo:destFile overwrite:YES];
       NSAssert(ret, @"unzipfile Error");
       if (![zip unzipCloseFile]) {
           NSLog(@"unzipCloseFile Failed");
       }
    }
}

감사합니다.