打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
iOS中ZIPRAR解压
年前做的邮件里面,需要解压邮件带的附件,但是当时只处理了zip的,rar的没找到合适的方式。昨天折腾了一天,算是折腾完了。现在整理如下:
1.zip解压
用的是 ZipArchive 这个很简单,主要代码如下

- (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.由于时间关系,没有写的更详细点,特别是解压的时候,路径,文件涉及到的编码问题
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Linux下的压缩文件剖析
压缩包的密码藏在哪?老司机教你揪出RAR密码
Linux下10个不同的查看归档或压缩文件内容的方法
文件打包与解压缩
Linux下查看压缩文件内容的 10 种方法
WinRAR的命令行模式用法介绍
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服