Создание ZIP-файла из папки в каталоге документов - Objective C (ARC)

У меня есть приложение для iPhone, которое я разработал с использованием ARC. У меня есть папка, которая содержит кучу изображений в моем каталоге документов, которые мне нужно заархивировать и отправить по электронной почте. Мой проект использует ARC.

У кого-нибудь есть пример кода / ссылки на ресурс, который будет полезен для меня?

Я бродил по интернету, и то, что я могу найти, не совместимо с ARC - даже когда оно утверждает, что это так.

1 ответ

Решение

Загрузите и перетащите файлы Objective-Zip, MiniZip и ZLib в свой проект по этой ссылке http://code.google.com/p/objective-zip/downloads/list (Objective-zip). импортировать файлы: ZipFile.h, ZipException.h, FileInZipInfo.h, ZipWriteStream.h, ZipReadStream.h, zlib.h

Используйте этот код. Пожалуйста, смотрите ниже:

NSString *stringPath1 = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]];
    NSString *FileName=[stringPath1 stringByAppendingPathComponent:@"Your file name"];


    NSString *stringPath=[stringPath1 stringByAppendingPathComponent:[@"Your file name" stringByAppendingFormat:@".zip"]];
    NSArray *files = [[NSFileManager defaultManager]contentsOfDirectoryAtPath:FileName error:&error];
    ZipFile *zipFile = [[ZipFile alloc]initWithFileName:stringPath mode:ZipFileModeCreate];

    for(int i = 0;i<files.count;i++){

        id myArrayElement = [files  objectAtIndex:i];
        NSLog(@"add %@", myArrayElement);

        NSString *path = [FileName stringByAppendingPathComponent:myArrayElement];
        NSDictionary *attributes = [[NSFileManager defaultManager]attributesOfItemAtPath:path error:&error];
        NSDate *Date = [attributes objectForKey:NSFileCreationDate];

        ZipWriteStream *streem = [zipFile writeFileInZipWithName:myArrayElement fileDate:Date compressionLevel:ZipCompressionLevelBest];
        NSData *data = [NSData dataWithContentsOfFile:path];
        [streem writeData:data];
        [streem finishedWriting];
    }

    [zipFile close];
Другие вопросы по тегам