今天用到了第三方类库zipArchive解压缩zip文件,用法很简单,如下:
1. ZipArchive *zip = [[ZipArchive alloc] init];
2. NSString *zipfilePath = @"压缩文件zip的路径";
3. if ([zip UnzipOpenFile:zipfilePath]) {
4. NSString *unzipPath = @"/Users/****/Desktop/";//保存解压缩后文件目录路径
5. BOOL ret = [zip UnzipFileTo:unzipPath overWrite:YES];
6. if (NO == ret) {
7. [zip UnzipCloseFile];
8. }
9. [zip release];
10. }
然后,我就发现了一个问题,这个类的解压缩方法解压缩后不能获取文件的路径,或者说不能获取文件名,这就有点坑爹了,获取不了文件名那解压缩它干嘛,然后就去类的实现文件ZipArchive.m中去看,研究-(BOOL) UnzipFileTo:(NSString*) path overWrite:(BOOL) overwrite这个方法的实现,突然间,我就发现了一个NSString类型的变量fullPath,我一阵窃喜,这不会就是文件路径吧,用NSLog打印一看,果真是!哈哈,好吧,既然是那我就改造下这个类吧,于是就添加了一个属性unzipfilePath,在此把fullPath赋值给unzipfilePath,然后在程序中直接调用zip.unzipfilePath就获得解压后文件的路径了!
附件是第三方类库ZipArchive。(我改后的)
附件:http://down.51cto.com/data/2361681
原文地址:
http://blog.51cto.com/wuhao999/1040897