ZipArchive解壓縮zip檔案

weixin_33816300發表於2017-05-05

ZipArchive是基於開原始碼”MiniZip”的zip壓縮與解壓的Objective-C 的Class,使用起來非常的簡單方法:從http://code.google.com/p/ziparchive/ 上下載ZipArchive.zip,解壓後將程式碼加入工程中,並且把libz.dylib庫新增到工程中

注意:下載的開原始碼是MRC編碼,在ARC和MRC混編時要配置-fno-objc-arc

使用方法:
  1. 壓縮:ZipArchive可以壓縮多個檔案,只需要把檔案addFileToZip即可
ZipArchive* zip = [[ZipArchive alloc] init];    
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);    
NSString *documentpath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;    
NSString* l_zipfile = [documentpath stringByAppendingString:@"/test.zip"] ;    
              
NSString* image1 = [documentpath stringByAppendingString:@"/image1.jpg"] ;       
NSString* image2 = [documentpath 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 *documentpath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;    
              
NSString* l_zipfile = [documentpath stringByAppendingString:@"/test.zip"] ;    
NSString* unzipto = [documentpath stringByAppendingString:@"/test"] ;    
if( [zip UnzipOpenFile:l_zipfile] )    
 {    
   BOOL ret = [zip UnzipFileTo:unzipto overWrite:YES];    
   if( NO==ret )    
   {    
   }    
   [zip UnzipCloseFile];    
 }    
[zip release];  

相關文章