標籤:
事實上,在iOS開發中,壓縮與解壓,我都是採用第三方架構SSZipArchive實現的
gitHub地址: https://github.com/ZipArchive/ZipArchive
上面有詳細的使用方法
因為ZipArchive不支援ARC,所以如果你的工程開啟了ARC,那麼就需要對ZipArchive設定一下。在ZipArchive.mm編譯選項中,增加-fno-objc-arc即可。
最後,需要為工程連結libz.dylib動態連結程式庫。
使用示範(壓縮):
// 獲得mainBundle中所有的png的圖片路徑 NSArray *pngs = [[NSBundle mainBundle] pathsForResourcesOfType:@"png" inDirectory:nil]; // zip檔案路徑 NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; NSString *zipFilepath = [caches stringByAppendingPathComponent:@"pngs.zip"]; // 建立zip檔案 [SSZipArchive createZipFileAtPath:zipFilepath withFilesAtPaths:pngs];
解壓:
NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; NSString *filepath = [caches stringByAppendingPathComponent:@"檔案名稱.zip"]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // 解壓(檔案大, 會比較耗時,所以放到子線程中解壓) [SSZipArchive unzipFileAtPath:filepath toDestination:caches]; });
iOS開發中的壓縮以及解壓