[問題] iOS解壓縮問題

作者: kissmickey (無言)   2014-06-19 16:03:49
目前使用的解壓縮方法有
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];
有人遇到跟我一樣的問題嗎? 求解
作者: benjenq (Ben(憋))   2014-06-20 00:41:00
ZipArchive正常,但是不支援中文
作者: kissmickey (無言)   2014-06-20 00:50:00
ZipArchive可以中文喔 只是問題1還是一樣發生
作者: Blueshiva (龍野南雲)   2014-06-20 14:26:00
Zip碰到中文要小心檔名/目錄名編碼的問題,雖然不確定有沒有相關,但可以試試
作者: kissmickey (無言)   2014-06-22 18:16:00
已解出來 是中文問題,以上三種都可以使用繁中

Links booklink

Contact Us: admin [ a t ] ucptt.com