Reputation: 11338
I want to implement ZipArchive in my project.
Using this library I want to archive files like images into zip file.
How can I do that ?
Upvotes: 1
Views: 5827
Reputation: 2038
try my code Zipcode :
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* dPath = [paths objectAtIndex:0];
NSString* txtfile = [dPath stringByAppendingPathComponent:@"test.txt"];
NSString* zipfile = [dPath stringByAppendingPathComponent:@"test.zip"];
ZipArchive* zip = [[ZipArchive alloc] init];
BOOL ret = [zip CreateZipFile2:zipfile];
ret = [zip addFileToZip:txtfile newname:@"test.txt"];//zip
if( ![zip CloseZipFile2] )
{
zipfile = @"";
}
[zip release];
NSLog(@"The file has been zipped");
Unzipcode:
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* dPath = [paths objectAtIndex:0];
NSString* zipfile = [dPath stringByAppendingPathComponent:@"test.zip"] ;
NSString* unzipto = [dPath stringByAppendingPathComponent:@"test"] ;
ZipArchive* zip = [[ZipArchive alloc] init];
if([zip UnzipOpenFile:zipfile] )
{
BOOL ret = [zip UnzipFileTo:unzipto overWrite:YES];
if(NO == ret)
{
}
[zip UnzipCloseFile];
}
[zip release];
NSLog(@"The file has been unzipped");
Upvotes: 4
Reputation: 3626
This code will work perfectly to zip a file.
ZipArchive *zip = [[ZipArchive alloc] init];
if(![zip UnzipOpenFile:fileToZipPath]) {
//open file is there
if ([zip CreateZipFile2:newZipFilePath overWrite:YES]) {
//zipped successfully
NSLog(@"Archive zip Success");
}
} else {
NSLog(@"Failure To Zip Archive");
}
}
To unzip,
if([zip UnzipOpenFile:zipFilePath]) {
//zip file is there
if ([zip UnzipFileTo:newFilePath overWrite:YES]) {
//unzipped successfully
NSLog(@"Archive unzip Success");
zipOpened = YES;
}
} else {
NSLog(@"Failure To Open Archive");
}
Upvotes: 2