-
[iOS][C] minizip 을 이용하여 압축하기case Computer : 2012. 9. 16. 17:12
C 용으로 zip 포맷으로 압축해보자
소스코드는 이곳에서 받을수 있다.
http://www.opensource.apple.com/source/zlib/zlib-43/zlib/contrib/minizip/
혹은 이 파일을 받아서 사용하면된다.
그리고 컴파일시에 libz.dylib 라이브러를 포함시키면된다.
압축과정은 다음과 같다.
zipOpen() : 결과적으로 생성될 zip 파일 열기
zipOpenNewfileInzip() : 압축할 대상 파일 생성
zipWriteInFileInZip() : 생성된 압축할 대상 파일에 쓰기
zipCloseFileInzip() : 쓰기 완료된 대상 파일 닫기
zipClose() : zip 파일 자체 닫기
#import "zip.h" ... void createZip(char* target){ zipFile _zipFile = NULL; char *zipTargetFile = "target.zip";
char *targetFile = "target.exe"; char *fileBuf = calloc(sizeof(char), 1024*1024*10); int file_size = 0; _zipFile = zipOpen((const char*) zipTargetFile, 0); if(!_zipFile) NSLog(@"zip open fail!"); zipOpenNewFileInZip(_zipFile, targetFile, NULL, NULL, 0, NULL, 0, "zip", 8, 1); FILE *fp = fopen(targetFile, "r"); fseek(fp, 0, SEEK_END); file_size = ftell(fp); fseek(fp, 0, SEEK_SET); fread(fileBuf, 1, file_size, fp); zipWriteInFileInZip(_zipFile, (void*)fileBuf, file_size); fclose(fp); zipCloseFileInZip(_zipFile); int ret = zipClose(_zipFile, NULL) == Z_OK? 1:0; if(ret == 1) NSLog(@"create zip success"); free(fileBuf); }
반응형'case Computer :' 카테고리의 다른 글
[Test] 오픈소스 테스팅 도구 모음 사이트 (0) 2013.02.04 [C] HTTP POST로 파일 업로드하는 코드 (1) 2012.09.16 [Java] Apache Commons Library를 이용한 압축하기(zip) (1) 2012.09.16 .bashrc .bash_profile for mac (0) 2012.03.12 cmd에서 환경변수 설정 방법 (1) 2011.11.28