2010-11-21 3 views
0

Существуют ли библиотеки, работающие в Objective C, для обрезки целых папок (и их распаковки)? Я посмотрел на некоторые из них с помощью поиска, но они выглядят как они требуют добавления файлов по отдельности, а некоторые из них якобы аварии ...Закрепление папки в Objective C

Похоже, эта библиотека может работать: http://bitbucket.org/dchest/osxzip/overview

Я не знаю, однако, если он поддерживает папки. Кто-нибудь знает, есть ли у него или есть какие-либо другие библиотеки, которые поддерживают zipping-папки? Даже образец кода для взаимодействия с командной строкой libz будет в порядке со мной ...

ответ

1

Вы можете использовать NSTask для запуска командной строки ditto. Обязательно посмотрите на справочную страницу ditto для правильной комбинации флагов, чтобы получить совместимость с Finder.

+0

Спасибо за то, link-- не знал ditto может сжимать папки. Рассмотрев несколько вещей, я могу закончить тем, что хочу использовать что-то в командной строке, потому что в настоящее время я решаю, идти ли с Qt (для кросс-платформы, и в этом случае я буду использовать 7-zip для Windows через командную строку и то же самое на Mac) или Objective C прямо сейчас ... –

1

Согласно этому примеру: http://www.raywenderlich.com/1948/how-integrate-itunes-file-sharing-with-your-ios-app вы можете получить объект NSData с Zipped данных, а затем просто записать его с [WriteToFile данных ....]

- (NSData *)exportToNSData { 
    NSError *error; 
    NSURL *url = [NSURL fileURLWithPath:_docPath]; 
    NSFileWrapper *dirWrapper = [[[NSFileWrapper alloc] initWithURL:url options:0 error:&error] autorelease]; 
    if (dirWrapper == nil) { 
     NSLog(@"Error creating directory wrapper: %@", error.localizedDescription); 
     return nil; 
    } 

    NSData *dirData = [dirWrapper serializedRepresentation]; 
    NSData *gzData = [dirData gzipDeflate];  
    return gzData; 
} 
+0

Спасибо за информацию, но вполне возможно, что в каталоге, который я закладываю, имеется огромное количество файлов (10k +) и более 200 мб, поэтому я не уверен, что был бы лучшим подходом (если он все равно будет молчать в RAM). Было ли это ограничено, если бы у меня было столько файлов? (Кстати, я не тот, который придумал эту структуру каталогов и всю вещь 10k файлов: P) –

+0

Я действительно не знаю ... Я использовал ее только для mac os x никогда на iphone ... но Я думаю, он должен работать. – Staeff

+1

Быть разборчивым, когда люди говорят о «застегивании» вещей, они обычно означают формат PKZip, который, вероятно, не совпадает с тем, что делает ваш образец кода. – JWWalker

Смежные вопросы