iOS 中 ZIP RAR 解压

- -(void) unZipClick {

   NSString *filename = unEncodingURL;

   NSFileManager *fileManager = [NSFileManagerdefaultManager];

   if ([fileManagerfileExistsAtPath:filename])   {

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

          BOOLresult;

         if ([zip UnzipOpenFile:filename]) {

          result = [zipUnzipFileTo:[filename          stringByDeletingPathExtension]overWrite:YES];

          if (!result) {

             [zipping dismissWithClickedButtonIndex:0animated:YES];

          }

          else

          {

             NSMutableArray *arry = [[NSMutableArray alloc]initWithArray:[zip.zipPath pathComponents]];

             if (![[[arry lastObject] pathExtension]isEqualToString:@""]) {

                 [arryremoveLastObject];

             }

             [arry removeObject:@"__MACOSX"];

             NSMutableString * sendString = [[NSMutableString                 alloc] init];

             BOOL isFirst = YES;

             for (NSString *dd in arry) {

                 if(isFirst) {

                    [sendStringsetString:dd];

                    isFirst = NO;

                }

                else

                {

                    [sendStringappendString:dd];

                    [sendStringappendString:@"/"] ;

                }

             }

             filePath = [[NSMutableString alloc]initWithString:sendString];

             [self showDirView];//此处是我利用filePath去获取刚才解压好的                             文件目录下的所有文件

         }

          [zipUnzipCloseFile];

      }

      else

      {

          [zippingdismissWithClickedButtonIndex:0 animated:YES];

          UIAlertView *zipping =[[UIAlertView alloc] initWithTitle:@"解压失败"message:@"文件损坏或者格式暂时无法解析"delegate:self cancelButtonTitle:@"知道了"otherButtonTitles: nil];

          [zipping show];

          

      }

   }


}

zip相对比较简单,demo也不少,所以不做过多描述

2.RAR解压

之前已知没有好的办法,昨天去发现了Unrar4ios然后download下来看了看,地址https://github.com/ararog/Unrar4iOS
上面的那个zip下载下来后,网站里面有说明文档,zip包里有两个工程,一个是Unrar4iOS,一个是UnrarExample,前者是静态类库,需要自己编译,此处不多说了,后者就是网站给出的demo,不过其中还是存在点问题。
运行后会 发现有错误
提示无法找到 "RARExtractException.h" 文件,此时你需要在unrar4iOS包中去找,然后将它添加到现有的这个demo中
此外unrar4ios.mm 也要倒入到工程中
此文件中是实现文件,rar解析的方法出自此处,如果步导入这个文件,你会发现,在你运行demo的时候,rar解析的几个方法不能按预期进行

-(BOOL) unrarOpenFile:(NSString*) rarFile;

-(BOOL) unrarOpenFile:(NSString*) rarFile withPassword:(NSString*)aPassword;

-(NSArray *) unrarListFiles;

-(BOOL) unrarFileTo:(NSString*) path overWrite:(BOOL)overwrite;

-(NSData *) extractStream:(NSString *)aFile;

-(BOOL)unrarCloseFile;   
这几个方法就是rar解压时所用到的主要的几个方法,看方法名就应该知道时干嘛的了


ps:1.如果在解压rar时遇到了不能兼容armv7s的情况,参照上篇博客
    2.由于时间关系,没有写的更详细点,特别是解压的时候,路径,文件涉及到的编码问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值