iPhone压缩与解压缩

2009年12月14日 由 joel 留言 »

ziparchive是基于开源代码”MiniZip”的zip压缩与解压的Objective-C 的Class,使用起来非常的简单.你只需要把代码加进你的工程,然后把zlib库添加到工程就可以了.

压缩:

ZipArchive可以压缩多个文件,只需要把文件一一addFileToZip即可.

  1. ZipArchive* zip = [[ZipArchive alloc] init];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *dcoumentpath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
    NSString* l_zipfile = [dcoumentpath stringByAppendingString:@"/test.zip"] ;

    NSString* image1 = [dcoumentpath stringByAppendingString:@"/image1.jpg"] ;
    NSString* image2 = [dcoumentpath stringByAppendingString:@"/image2.jpg"] ;

    BOOL ret = [zip CreateZipFile2:l_zipfile];
    ret = [zip addFileToZip:image1 newname:@"image1.jpg"];
    ret = [zip addFileToZip:image2 newname:@"image2.jpg"];
    if( ![zip CloseZipFile2] )
    {
    l_zipfile = @”";
    }
    [zip release];

解压缩:

  1. ZipArchive* zip = [[ZipArchive alloc] init];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *dcoumentpath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;

    NSString* l_zipfile = [dcoumentpath stringByAppendingString:@"/test.zip"] ;
    NSString* unzipto = [dcoumentpath stringByAppendingString:@"/test"] ;
    if( [zip UnzipOpenFile:l_zipfile] )
    {
    BOOL ret = [zip UnzipFileTo:unzipto overWrite:YES];
    if( NO==ret )
    {
    }
    [zip UnzipCloseFile];
    }
    [zip release];

This article was written in springnote.

广告位

543 条评论

  1. 又是一连串代码,it is so hard to realize

留下评论