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;
}
}
在工具类进行解压