2012-07-25 11 views
5

Mam aplikację na iPhone, którą opracowałem przy użyciu ARC. Mam folder, który zawiera stos obrazów w moim katalogu dokumentów, który muszę skompresować i wysłać pocztą e-mail. Mój projekt używa ARC.Tworzenie pliku ZIP z folderu w katalogu dokumentów - Cel C (ARC)

Czy ktoś ma przykładowy kod/łącza do zasobu, który byłby dla mnie przydatny?

Grałem online, a to, co mogę znaleźć, nie jest zgodne z ARC - nawet jeśli twierdzi, że tak jest.

+6

Wiesz, że możesz wyłączyć ARC na podstawie pliku po pliku, prawda? Więc jeśli masz kod spoza ARC, który ci się podoba, możesz go użyć w projekcie ARC. ARC nie jest wszystko lub nic; jest to opcja kompilatora na plik. http://stackoverflow.com/questions/6646052/how-can-i-disable-arc-for-a-single-file-in-a-project –

+0

I dalej wyjaśnić, jeśli masz projekt Xcode, który buduje takie Biblioteka Objective-C, a nie ARC, możesz dołączyć ten projekt do swojego projektu i korzystać z biblioteki, niezależnie od tego, czy jest to ARC, czy nie. –

+0

Och, nie, nie zdawałem sobie z tego sprawy, okrzyki. –

Odpowiedz

8

Pobierz i przeciągnij Objective-Zip, MiniZip i ZLib przeciągnij do swojego projektu z tego linku http://code.google.com/p/objective-zip/downloads/list (Objective-zip). importować pliki: ZipFile.h, ZipException.h, FileInZipInfo.h, ZipWriteStream.h, ZipReadStream.h, zlib.h

użyć tego kodu. Proszę zobaczyć poniżej:

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]; 
+0

Niestety, podany link jest już martwy. – mcy

+0

Przykro mi, ale to było ponad 1 rok temu ... –

+2

Znaleziono działający link do tego projektu: https://github.com/flyingdolphinstudio/Objective-Zip –

Powiązane problemy