Devang
Devang

Reputation: 11338

How to zip file using "ZipArchive library" in iphone ?

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

Answers (2)

Bonny
Bonny

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

iOS
iOS

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

Related Questions