2012-10-24 3 views
1

가능한 중복 압축을 풉니 다 :
How to uncompress a gzip file and write that out to an uncompressed file, on iPhone아이폰 OS가 된 .gz 파일을

임 아이폰 OS에 서 .gz sqlite가 파일을 압축 해제하려고하지만, 지금까지 나는 그것을 위해 좋은 라이브러리를 발견하지 않았다 .

나는 그런 SSZipArchive을 시도 :

하지만 내가 SQLite 데이터베이스를 gzip을 경우, 압축 된 SQLite는 데이터베이스 파일 작동
path = [[NSBundle bundleForClass:[self class]] pathForResource:@"test.sqlite" ofType:@"gz"]; 

NSString *documentsDir = (NSString *)[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 
destination = documentsDir; 
NSError *error; 

BOOL success = [SSZipArchive unzipFileAtPath:path toDestination:destination overwrite:YES password:nil error: &error]; 

. 그런 다음 "can not open zip file"오류가 반환 될 때마다

그런 다음 https://github.com/nicklockwood/GZIP에서이 GZIP 접근 방식을 시도했습니다. 내가 같은 코드를 사용 : 그 후

path = [[NSBundle bundleForClass:[self class]] pathForResource:@"test.sqlite" ofType:@"gz"]; 

NSString *documentsDir = (NSString *)[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 
destination = [documentsDir stringByAppendingPathComponent:@"test.sqlite"]; 


NSData *gzData = [NSData dataWithContentsOfFile:path]; 
NSData *ungzippedData = [gzData gunzippedData]; 

return [ungzippedData writeToFile:destination atomically:YES]; 

을 내 문서 폴더에 파일 이름 test.sqlite을 가지고,하지만 난 그것을 열려고하면 페일가 손상 때문에 실패합니다.

내 마지막 시도는 ZipArchive에서 http://code.google.com/p/ziparchive/까지였습니다. 나는 그런 식으로 그것을 사용 :

ZipArchive* za = [[ZipArchive alloc] init]; 
if([za UnzipOpenFile:path]){ 
    BOOL success = [za UnzipFileTo:destination overWrite:YES]; 
    [za UnzipCloseFile]; 
    return success; 
} 

을하지만이 또한 파일을 열 캔트.

나를 도와 줄 사람이 있습니까?

+0

안녕하세요 Andy, 내 app.have에서 동일한 문제에 직면하고 있습니다.이 문제를 해결 하시겠습니까? – Smita

답변

1

Xcode의 링커 설정에서 대상에 추가 할 수있는 zlib 라이브러리가 있습니다.

여기서 zlib 사용 방법에 대한 예제를 찾을 수 있습니다. http://zlib.net/zlib_how.html

관련 문제