Translate

Thursday, November 22, 2012

Zip-Unzip in ios, iPhone, iPad,mac-osX



An Very good library to zip/uzip files using objective-c.
You can also unzip password protected file using this utility.
steps to use...
1)Download it from http://code.google.com/p/ziparchive/
2)include minizip folder and ZipArchive.h and ZipArchive.m files into your project.
3) import ZipArchive.h in your class and then call approprite methods of ZipArchive to zip/unzip.

for example:
//to create zipfile
 -(BOOL) CreateZipFile2:(NSString*) zipFile;
//to create password protected zipfile
-(BOOL) CreateZipFile2:(NSString*) zipFile Password:(NSString*) password;
////to addFile To zipfile
-(BOOL) addFileToZip:(NSString*) file newname:(NSString*) newname;
//closing zip
-(BOOL) CloseZipFile2;


//unziping zip file
-(BOOL) UnzipOpenFile:(NSString*) zipFile;

//unzip password protected zip file
-(BOOL) UnzipOpenFile:(NSString*) zipFile Password:(NSString*) password;

-(BOOL) UnzipFileTo:(NSString*) path overWrite:(BOOL) overwrite;
-(BOOL) UnzipCloseFile;


//Demo code.

//Unziping File
    ZipArchive* zipArchive = [[ZipArchive allocinit];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                         NSUserDomainMask,
                                                         YES);
    
    NSString *zipFile = [[paths lastObjectstringByAppendingPathComponent:@"abcd.zip"];

    NSString *extractedFile = [[paths lastObjectstringByAppendingPathComponent:@"Extracted"];
    if( [zipArchive UnzipOpenFile: zipFile Password:@"mypassword"] )
    {
        BOOL ret = [zipArchive UnzipFileTo:extractedFile overWrite:YES];
        ifNO==ret )
        {
            UIAlertView *alert=[[UIAlertView allocinitWithTitle:@"Error" message:[NSString stringWithFormat:@"Unable to unzip."delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nilnil];
            [alert show];
            [alert release];
            [zipArchive release];
            return false;
        }
        [zipArchive UnzipCloseFile];

No comments:

Post a Comment