作者kissmickey (无言)
看板MacDev
标题[问题] iOS解压缩问题
时间Thu Jun 19 16:03:49 2014
目前使用的解压缩方法有
ZipArchive、Objective-Zip、SSZipArchive
解压缩含有3层以上的资料 原始档总共加起来192个, 45 MB
第一层有放资料 1资料夹 8x个档案
第二层4个资料夹
第三层每个资料夹都有内容 声音 图片
问题1.
3种方式都一样遇到
解压缩完,会出现第一层资料OK、第二层只读到1个或2个资料夹
第三层只读到一个资料夹的1个档,其他的都没读到
objective-zip 有出现错误讯息:
The operation couldn't be completed. (Cocoa error 512.)
如果只是单纯把那4个资料夹的东西压缩解压缩,是ok的
问题2.
win7 上的压缩档放到ios上,解压缩会出现上面的情况
在mac上制作的zip 放到ios 完全解压缩不出来!!?
使用Objective-zip部分程式码
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentPath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil; // 原文件
NSString *zipFilePath = [documentPath stringByAppendingString:@"/XXX.zip"]; // 目的文件
NSString *dataPath = [documentPath stringByAppendingString:@"/IDF"];
ZipFile *zipFile = [[ZipFile alloc] initWithFileName:zipFilePath mode:ZipFileModeUnzip];
[zipFile goToFirstFileInZip];
BOOL continueReading = YES;
while (continueReading)
{
//读取文件信息
FileInZipInfo *info = [zipFile getCurrentFileInZipInfo];
//丢入buffer
ZipReadStream *stream = [zipFile readCurrentFileInZip];
//[stream finishedReading];
NSMutableData *data = [[NSMutableData alloc] initWithLength:info.length];
[stream readDataWithBuffer:data];
//存入文件
NSString *writePath = [dataPath stringByAppendingPathComponent:info.name];
NSError *error = nil;
[data writeToFile:writePath options:NSDataWritingAtomic error:&error];
if (error) {
NSLog(@"Error unzipping file: %@",[error localizedDescription]);
}
//清理
[stream finishedReading];
[data release];
//继续读取
continueReading = [zipFile goToNextFileInZip];
}
[zipFile close];
有人遇到跟我一样的问题吗? 求解
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.134.26.195
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/MacDev/M.1403165032.A.C79.html
1F:→ benjenq:ZipArchive正常,但是不支援中文 06/20 00:41
2F:→ kissmickey:ZipArchive可以中文喔 只是问题1还是一样发生 06/20 00:50
3F:→ Blueshiva:Zip碰到中文要小心档名/目录名编码的问题,虽然不确定有 06/20 14:26
4F:→ Blueshiva:没有相关,但可以试试 06/20 14:26
5F:→ kissmickey:已解出来 是中文问题,以上三种都可以使用繁中 06/22 18:16