美文网首页iOS备忘录
iOS解压ZIP压缩包

iOS解压ZIP压缩包

作者: 鄂北 | 来源:发表于2019-03-05 16:43 被阅读0次

    下载地址:SSZipArchive

    步骤:

    一:导入SSZipArchive
    使用cocoapods导入
    pod 'SSZipArchive'

    二:导入头文件
    #import "SSZipArchive.h"

    三:获取zip压缩包文件路径

    • 获取文件的方式
      方法一:
    NSString* filePath = [[NSBundle mainBundle] pathForResource:@"ZipName" ofType:@"zip"];
    
    

    ZipName:zip文件名
    zip:文件名后缀

    如果压缩包是直接拖进工程的就使用这种方式获取文件路径。这是获取项目下的文件路径

    方法二:Document目录下

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *basePath = paths.firstObject;
    NSString *filePath = [basePath stringByAppendingPathComponent:@"文件名"];
    

    方法三:Cache目录下

    NSArray *cache = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *basePath = paths.firstObject;
    NSString *filePath = [basePath stringByAppendingPathComponent:@"文件名"]
    

    四:解压

    /**
     SSZipArchive解压
    
     @param path 压缩包文件路径
     */
    -(void)uSSZipArchiveWithFilePath:(NSString *)path
    {
        //Caches路径
        NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];
        //解压目标路径
        NSString *destinationPath =[cachesPath stringByAppendingPathComponent:@"SSZipArchive"];
       
        //解压
        BOOL isSuccess = [SSZipArchive unzipFileAtPath:path toDestination:destinationPath];
        
        //如果解压成功则获取解压后文件列表
        if (isSuccess) {
            [self obtainZipSubsetWithFilePath:destinationPath];
        }
        
    }
    
    
    /**
     获取解压后文件列表
    
     @param path 解压后的文件路径
     */
    - (void)obtainZipSubsetWithFilePath:(NSString *)path
    {
        NSString *destinationPath =[path stringByAppendingPathComponent:@"压缩包名(不需要后缀)"];
        // 读取文件夹内容
        NSError *error = nil;
        NSMutableArray*items = [[[NSFileManager defaultManager]
                                 contentsOfDirectoryAtPath:destinationPath
                                 error:&error] mutableCopy];
        if (error) {
            return;
        }
        
        for (NSString * item_str in items) {
            NSLog(@"文件名:%@",item_str);
        }
        
    }
    

    相关文章

      网友评论

        本文标题:iOS解压ZIP压缩包

        本文链接:https://www.haomeiwen.com/subject/yslouqtx.html