Search code examples
iosiphonensarrayunzip

Unzipping images to NSArray ios


I have a zip file of images on my backend server. I want to download the zip and unarchive the content (images) to NSArray. Is there a way to do it? Thank you)


Solution

  • You could to use SSZipArchive in order to work with zip files.

    Below line would unzip and assign images to a NSArray

       // Unzipping
    NSString *zipPath = @"path_to_your_zip_file";
    NSString *destinationPath = @"path_to_the_folder_where_you_want_it_unzipped";
    [SSZipArchive unzipFileAtPath:zipPath toDestination:destinationPath];
    
    // Zipping
    NSString *zippedPath = @"path_where_you_want_the_file_created";
    NSArray *inputPaths = [NSArray arrayWithObjects:
                           [[NSBundle mainBundle] pathForResource:@"photo1" ofType:@"jpg"],
                           [[NSBundle mainBundle] pathForResource:@"photo2" ofType:@"jpg"]
                           nil];
    [SSZipArchive createZipFileAtPath:zippedPath withFilesAtPaths:inputPaths];
    

    To delete a file:

    - (void)deleteFile:(NSString *)fileName
    {
      NSFileManager *fileManager = [NSFileManager defaultManager];
      NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    
      NSString *filePath = [documentsPath stringByAppendingPathComponent:fileName];
      NSError *error;
      BOOL success = [fileManager removeItemAtPath:filePath error:&error];
      if (success) {
          UIAlertView *removeSuccessFulAlert=[[UIAlertView alloc]initWithTitle:@"Congratulation:" message:@"Successfully removed" delegate:self cancelButtonTitle:@"Close" otherButtonTitles:nil];
          [removeSuccessFulAlert show];
      }
      else
      {
          NSLog(@"Could not delete file -:%@ ",[error localizedDescription]);
      }
    }