如何从NSData对象保存多个文件?

时间:2012-04-12 02:56:01

标签: iphone objective-c

所以我有一个zip文件,使用Objective-Zip提取。然后将提取的内容放入NSData对象中。我想将内容保存到apps Documents文件夹中。问题是这些是多个文件,而writeToFile:atomically:将zip的内容保存到一个文件中。

有什么想法吗?我看到的另一个问题是说使用ZipArchive。

我需要快速帮助,因为应用程序需要在明天工作结束时完成。

1 个答案:

答案 0 :(得分:1)

我认为您需要使用ZipArchive:

ZipArchive* za = [[ZipArchive alloc] init];
NSData *Data = [NSData  dataWithContentsOfURL:url]; // here url is your zip url
NSArray *documentPathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirString = [documentPathArray objectAtIndex:0];
NSString *filePath = [documentsDirString stringByAppendingPathComponent:@"temp.zip"];

NSURL *fileURL = [NSURL fileURLWithPath:filePath];
NSError *writeError = nil;
[Data writeToURL: fileURL options:0 error:&writeError];
if( writeError) {
   NSLog(@" Error in writing file %@' : \n %@ ", filePath , writeError );
   return;
}
if( [za UnzipOpenFile:filePath] )
{

    BOOL ret = [za UnzipFileTo:documentsDirz overWrite:YES];
    if( NO==ret )
     {
      NSLog(@"NO");
    }
    [za UnzipCloseFile];
} 

for more info