Как разархивировать/разархивировать с помощью Objective-C, включая извлечение отдельных файлов

Мне нужно обрабатывать различные файлы rar/zip в Objective-C. В идеале я хотел бы быть максимально гибким с точки зрения версий rar/zip. Я также хотел бы иметь возможность извлекать только определенные файлы из файлов rar/zip после получения списка содержимого файла.

Если этого недостаточно, я хотел бы иметь доступ к комментарию zip и изменять его.

Это легко возможно в Objective-C? Я много искал и нашел много недоработанных библиотек, которые не делают всего, что я хочу, или поддерживают только rar до версии 2, или не поддерживают извлечение отдельных файлов.

Я знаю, что могу просто использовать инструмент распаковки из командной строки, который поставляется с MacOS Panther и выше, но это кажется неэлегантным и не помогает мне с файлами rar, поскольку по умолчанию приложение для распаковки не поставляется с MacOS.

Может ли кто-нибудь указать мне достойную библиотеку, которая делает один или другой из этих двух типов файлов, или рекомендуемый лучший подход для решения этой проблемы? Я знаю, что один из вариантов — обернуть исходный код unrar, а также обернуть исходный код zlib, но для меня это сложная задача. Если нет другого варианта, я сделаю это - любые советы или рекомендации по этому поводу будут с благодарностью получены.

Спасибо!


person Nick Locking    schedule 16.10.2010    source источник


Ответы (1)


Да, это легко сделать в Objective C. Для zip-файлов просто используйте ZLIB (он уже включен в Mac OS Х.

Однако RAR не так прост. Найдите библиотеку C (не библиотеку Objective-C). Будет гораздо больше библиотек C для обработки RAR, чем библиотек Objective-C. И вы можете использовать любые библиотеки C в программе Objective-C.

person Pablo Santa Cruz    schedule 16.10.2010
comment
zlib сам по себе не поддерживает zip-файлы. См. Часто задаваемые вопросы. - person Matthew Flaschen; 04.11.2010