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

    [zip addFileToZip:filePath newname:str];

添加一个要保存的zip路径,这里如果有中文编码的话会出现乱码的问题,

 

if( [_password length] == 0 )

{

ret = zipOpenNewFileInZip( _zipFile,

  (const char*) [newname cStringUsingEncoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)],

  &zipInfo,

  NULL,0,

  NULL,0,

  NULL,//comment

  Z_DEFLATED,

  Z_DEFAULT_COMPRESSION );

}

else

{

data = [ NSData dataWithContentsOfFile:file];

uLong crcValue = crc32( 0L,NULL, 0L );

crcValue = crc32( crcValue, (const Bytef*)[data bytes], [data length] );

ret = zipOpenNewFileInZip3( _zipFile,

  (const char*) [newname cStringUsingEncoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)],

  &zipInfo,

  NULL,0,

  NULL,0,

  NULL,//comment

  Z_DEFLATED,

  Z_DEFAULT_COMPRESSION,

  0,

  15,

  8,

  Z_DEFAULT_STRATEGY,

  [_password cStringUsingEncoding:NSASCIIStringEncoding],

  crcValue );

}

需要把阴影部分替换掉即可正常。

+ (BOOL)unZipAtPath:(NSString *)path {

    

    

    NSLog(@"%@",path);

    

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

       if( [zip UnzipOpenFile:path] )

    {

        BOOL ret = [zip UnzipFileTo:PaperSoucePath  overWrite:YES];

    //解压结果

        return ret;

        

    }else{

        

        return NO;

 

    }

    

}

 在工具类进行解压