怎么在ios里打开zip_ios打开.zip - CSDN
  • iOS 读取zip包中的文件

    2016-09-22 19:17:10
    iOS读取Zip包中文件

    项目需要,最近处理zip包中的文件,经探索有两种方式,分别对应的类库文件为:ZipArchive 和 Objective-Zip。对应的下载地址分别为:

    (1)http://ziparchive.googlecode.com/files/ZipArchive.zip

     没法FQ的小伙伴可以去http://download.csdn.net/detail/xiaodragon2008/9621450下载即可

    (2)https://github.com/gianlucabertani/Objective-Zip

    这两个开源库都具备压缩,和解压缩功能,下面只介绍自己用到的读取Zip包中的功能

    1.ZipArchive

    这个方法需要首先将压缩包解压到某个目录,然后再从解压到的目录中去读取相应的文件即可,首先引入下载地址中的第三方库文件

    下面代码实现的操作是读取本地项目中的20160809.zip包中的文件,解压以后并读取20160809.xml中的文件

    NSString *zipPath = [[NSBundle mainBundle] pathForResource:@"20160809" ofType:@"zip"];
         
        NSLog(@" zip path :%@",zipPath);
        ZipArchive *za = [[ZipArchive alloc]init];
         
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentpath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
        <br>NSFileManager *fileManager = [NSFileManager defaultManager];
        NSString *unzipFilePath = [documentpath stringByAppendingPathComponent:@"/test"];
         
        if([za UnzipOpenFile:zipPath])
        {
            BOOL ret = [za UnzipFileTo:unzipFilePath overWrite:YES];
            if(ret == NO){
                 
            }
            [za UnzipCloseFile];
        }
         
        NSString *unzipFullPath = [NSString stringWithFormat:@"%@/20160809.xml",unzipFilePath];
        NSData *xmlData = [NSData dataWithContentsOfFile:unzipFullPath options:0 error:nil];
        NSDictionary *responseData = [NSDictionary dictionaryWithXMLData:xmlData];



    2.Objective-Zip 该方法,可以解压后读取,也可以直接解压到内存中读取,本人为了提高效率,主要采用后面一种处理方式

    NSString *zipPath = [[NSBundle mainBundle] pathForResource:@"20160809" ofType:@"zip"];
     
        NSError *error;
        OZZipFile *unzipFile = [[OZZipFile alloc]initWithFileName:zipPath mode:OZZipFileModeUnzip error:&error];
        if(error != nil)
        {
            return;
        }
        NSLog(@"error -- xx %@",error);
    //    OZZipFile *unzipFile= [[OZZipFile alloc] initWithFileName:zipPath
    //                                                         mode:OZZipFileModeUnzip];
         
        [unzipFile goToFirstFileInZip];
        OZFileInZipInfo *info= [unzipFile getCurrentFileInZipInfo];
         
        OZZipReadStream *read= [unzipFile readCurrentFileInZip];
        NSMutableData *data= [[NSMutableData alloc] initWithLength:info.length];
        [read readDataWithBuffer:data];
         
        // Do something with data
        NSData *xmlData = [NSData dataWithData:data];
        NSDictionary *responseData = [NSDictionary dictionaryWithXMLData:xmlData];
        NSLog(@"responseData %@",responseData);
        [read finishedReading];

    注意,为了保证有时候读取的文件有可能不是zip文件,所以要做容错处理,要使用

    OZZipFile *unzipFile = [[OZZipFile alloc]initWithFileName:zipPath mode:OZZipFileModeUnzip error:&error];
        if(error != nil)
        {
            return;
        }<br>而不是如下的初始化zip包文件方法。
    OZZipFile *unzipFile= [[OZZipFile alloc] initWithFileName:zipPath mode:OZZipFileModeUnzip];

    比如说我曾经遇到过,从服务器中去下载zip包文件,但是出现过下载到本地的zip包文件无法打开,因为服务器给返回的是http请求是200但是没有数据,给我返回一个resultcode,导致程序没法解压该zip包文件,app意外崩溃。

    展开全文
  • 在iOS开发中,我们有时会碰到解压Zip文件,或者压缩成Zip文件的需求! ZipArchive是一个开源的工具包,以下是配置步骤: 1. 首先下载ZipArchive,下载地址:...

    在iOS开发中,我们有时会碰到解压Zip文件,或者压缩成Zip文件的需求!


    ZipArchive是一个开源的工具包,以下是配置步骤:

    1. 首先下载ZipArchive,下载地址:http://ziparchive.googlecode.com/files/ZipArchive.zip

    2. 将解压后的文件倒入工程中

    3. 为工程链接libz动态链接库

    4. 如果你的工程开启了ARC,在ZipArchive.mm编译选项中增加-fno-objc-arc

    好了,到此为止,配置结束,下面是代码实现部分:

    // *************创建/添加一个zip包 *************

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

        //次数得zipfilename需要一个完整得路径,例如***/Documents/demo.zip

        [zipFile CreateZipFile2:@"zipfilename"];

        //有两种可选得方式进行创建压缩包,带密码和不带密码的

        [[zipFile CreateZipFile2:@"zipfilename" Password:@"your password"];

         //接下来就是将需要压缩的文件添加到这个压缩包中

         //这里第一个参数需要完整的路径,例如:***/Documents/a.txt  newname是指文件在压缩包中的名字,不需要路径,只是一个名称

         [zipFile addFileToZip:@"fullpath of the file" newname:@"new name of the file without path"];

         //如果需要将多个文件进行压缩,即压缩文件夹,重复addFileToZip方法即可

         [zipFile CloseZipFile2];


       // ************* 解压一个zip包 *************

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

        [zipFile UnzipOpenFile:@"zip file name"];

        //同样,对应的就有两种打开zip包的方式,带密码和不带密码

      [zipFile UnzipOpenFile:@"zip file name" Password:@"password" ];

      //压缩包释放到的位置,需要一个完整路径

      [zipFile UnzipFileTo:@"output path" overwrite:YES];

        [zipFile UnzipCloseFile];

    展开全文
  • 1.ios下载服务器上的zip资源包(图片,声音等经过zip压缩的资源包)到本地 2.解压zip到程序目录 3.从程序目录加载资源文件 一、下载zip资源 -(NSString*)DownloadTextFile:(NSString*)fileUrl fileName:...

    欢迎访问我的接口小站:www.chinadev.cn

    思路是

    1.ios下载服务器上的zip资源包(图片,声音等经过zip压缩的资源包)到本地

    2.解压zip到程序目录

    3.从程序目录加载资源文件


    一、下载zip资源

    -(NSString*)DownloadTextFile:(NSString*)fileUrl   fileName:(NSString*)_fileName
    {
        NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask,YES);//使用C函数NSSearchPathForDirectoriesInDomains来获得沙盒中目录的全路径。
        NSString *ourDocumentPath =[documentPaths objectAtIndex:0];
        NSString *sandboxPath = NSHomeDirectory();
        NSString *documentPath = [sandboxPath  stringByAppendingPathComponent:@"TestDownImgZip.app"];//将Documents添加到sandbox路径上//TestDownImgZip.app
        NSString *FileName=[documentPath stringByAppendingPathComponent:_fileName];//fileName就是保存文件的文件名
        NSFileManager *fileManager = [NSFileManager defaultManager];
        // Copy the database sql file from the resourcepath to the documentpath
        if ([fileManager fileExistsAtPath:FileName])
        {
            return FileName;
        }else
        {
            NSURL *url = [NSURL URLWithString:fileUrl];
            NSData *data = [NSData dataWithContentsOfURL:url];
            [data writeToFile:FileName atomically:YES];//将NSData类型对象data写入文件,文件名为FileName
        }
        return FileName;
    }
    



    2.解压zip包

    - (void)OpenZip:(NSString*)zipPath  unzipto:(NSString*)_unzipto
    {
        ZipArchive* zip = [[ZipArchive alloc] init];
        if( [zip UnzipOpenFile:zipPath] )
        {
            BOOL ret = [zip UnzipFileTo:_unzipto overWrite:YES];
            if( NO==ret )
            {
                NSLog(@"error");
            }
            [zip UnzipCloseFile];
        }
        [zip release];
        
    }


    3.调去函数

    - (IBAction)ShowImg:(id)sender {
        NSString *filePath = [self DownloadTextFile:@"http://www.xtox.net/img.zip" fileName:@"img.zip"];
        NSLog(filePath);
        
        NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask,YES);//使用C函数NSSearchPathForDirectoriesInDomains来获得沙盒中目录的全路径。
        NSString *ourDocumentPath =[documentPaths objectAtIndex:0];
        NSString *sandboxPath = NSHomeDirectory();
        NSString *documentPath = [sandboxPath  stringByAppendingPathComponent:@"TestDownImgZip.app"];//将Documents添加到sandbox路径上//TestDownImgZip.app
    
        [self OpenZip:filePath unzipto:documentPath];
        self.imgView.image = [UIImage imageNamed:@"img/1.png"];
    }


    展开全文
  • iOS13.5.zip

    2020-07-30 23:31:25
    iOS 13.5 Xcode真机运行支持包,解压之后放到/Users/liy/Library/Developer/Xcode/iOS DeviceSupport 文件夹下,clean项目,重启Xcode即可
  • IOS下载并解压zip文件

    2015-02-09 19:11:17
    首先导入zipArchive库,点击下载 func downloadSource(path:NSString){ var url = NSURL(string: NSString(format: "%@/sources/\(path)", server)) var request = NSURLRequest(URL: url!)

    首先导入zipArchive库,点击下载


        func downloadSource(path:NSString){
            var url =  NSURL(string: NSString(format: "%@/sources/\(path)", server))
            var request = NSURLRequest(URL: url!)
            var data:NSData? = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: nil)
            if((data) != nil){
                var str = NSHomeDirectory().stringByAppendingPathComponent("Library/\(path)")
                if data!.writeToFile(str, atomically: true) {
                    println("下载完成 OK")
                    if(zip.UnzipOpenFile(str)){
                        var path = NSHomeDirectory().stringByAppendingPathComponent("Library/sources");
                        if zip.UnzipFileTo(path, overWrite: true){
                            println("解压OK")
                            NSFileManager.defaultManager().removeItemAtPath(str, error: nil)     
                            
                        }else{
                            
                            println("解压 fail")
                        }
                    }else{
                        println("解压 fail")
                    }
                }
            }
          
        }


    展开全文
  • ios13.2调试包.zip

    2020-07-03 10:15:08
    ios开发13.2 调试包,真机调试包,你们可以下载到本地进行解压操作即可
  • 转载自: http://blog.sina.com.cn/s/blog_833996210100udkl.html 从http://code.google.com/p/ziparchive/上下载ZipArchive.zip,解压后将代码加入工程中,把zlib库添加到工程中 压缩 ...ZipArchive* zip = [...
  • 打开 Finder 按下: Command⌘+Shift⇧+G 输入: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 把文件解压到这个文件夹下,重新启动 Xcode,连上真机运行,Xcode 会开始...
  • 打开自带地图、百度地图、腾讯地图
  • ios-iOS PDF文件浏览.zip

    2020-05-25 23:30:10
    iOS 本地PDF文档浏览,支持翻页、跳页、缩放。 CSDN博客:http://blog.csdn.net/hero_wqb/article/details/78913544
  • iOS 开发,我们常遇到的压缩文件多是以 .zip 作为后缀的,但是这次项目我们通过 url 下载地图离线包,得到的文件为 .gz 后缀.这里 简单说说 .zip 和 .gz 文件的区别: 其实这两个压缩文件里面包含的内容是一样...
  • iOS 开发小帮手:帮你快速打开 iOS 模拟器设备的程序目录,或者终端中操作。.zip,使用simsim浏览终端或查找程序中的ios应用程序文件夹。快速,稳定,免费替代炖肉。
  • 不支持:UC 系内核(典型的支付宝,大部分国产手机厂商的浏览器),IOS 上除 Safari 外的其他任何形式的浏览器(含 研究方法:【Recordapp的投资回报率】、【Android、iOS应用演示版】、【录音录音机】、【android、...
  • ios-WKWebView的使用.zip

    2020-07-30 23:33:32
    WKWebView的使用、JS和OC的交互、网页内容加载进度条的实现
  • 简单的 原生调取本地 H5页面
  • //联系人:石虎  QQ: 1224614774昵称:嗡嘛呢叭咪哄 压缩失败图: 解压失败图: ... 3、浏览器下载或者下载完成zip文件时,对其进行了错误处理;  4、bug导致。 首先你可以验证一下你的zip文件md5 hash
  • 像百度网盘等应用,里面的文件打开时,都可以通过以下应用再打开文件。下面红色框框内的我的jpg就是我做的一个例子。因为例子没有提供Icon,所以显示的是默认icon。 下面就是这例子的主要步骤和代码。 ...
  • iOS13.4.1真机调试包.zip

    2020-07-29 11:28:41
    适用于iOS13.4.1真机调试,亲测可用,用法打开路径: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport将解压缩的文件夹放进去重启Xcode即可
  • 最近一个iOS项目中需要对Zip文件进行解压缩,发现了一个很好用的包——Objective-Zip(http://code.google.com/p/objective-zip/),Objective-Zip将Zlib和MiniZip用Objective-C进行了封装,使用起来
1 2 3 4 5 ... 20
收藏数 11,574
精华内容 4,629
热门标签
关键字:

怎么在ios里打开zip