🎊 iOS压缩文件与解压缩文件

iOS压缩文件与解压缩文件

使用第三方框架ZipArchive进行压缩与解压,cocoapod:pod 'ZipArchive'

1.压缩

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

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);

NSString *documentpath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;

NSString* l_zipfile = [documentpath stringByAppendingString:@"/test.zip"] ;

NSString* image1 = [documentpath stringByAppendingString:@"/image1.jpg"] ;

NSString* image2 = [documentpath stringByAppendingString:@"/image2.jpg"] ;

BOOL ret = [zip CreateZipFile2:l_zipfile];

ret = [zip addFileToZip:image1 newname:@"image1.jpg"];

ret = [zip addFileToZip:image2 newname:@"image2.jpg"];

if( ![zip CloseZipFile2] )

{

l_zipfile = @"";

}

2.解压缩

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

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);

NSString *documentpath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;

NSString* l_zipfile = [documentpath stringByAppendingString:@"/test.zip"] ;

NSString* unzipto = [documentpath stringByAppendingString:@"/test"] ;

if( [zip UnzipOpenFile:l_zipfile] )

{

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

if( NO==ret )

{

}

[zip UnzipCloseFile];

}

乱码处理问题

里面是一些带特殊符号的文件, 使用zipArchive解压后会出现乱码。

解决方法是到ZipArchive.mm文件中找到

NSString * strPath = [NSString

stringWithCString:filename];

换成UTF8方式解压, 如下:

NSString * strPath = [NSString

stringWithUTF8String:filename];

但是有时后中文也会有问题, 用如下方式:

NSStringEncoding enc =

CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);

NSString * strPath = [NSString

stringWithCString:filename encoding:enc];

🎁 相关推荐

穿越火线怎么查看自己玩多少年了 怎么查穿越火线玩几年
穿越火线怎么查看自己玩多少年了 怎么查穿越火线玩几年
这五种方法,能快速练出丹田气
🎯 beat365体育

这五种方法,能快速练出丹田气

📅 06-30 👀 1436