#objective-c #cocoa #compression #nsdata
#objective-c #cocoa #сжатие #nsdata
Вопрос:
Я играл с приложением и хотел добавить возможность сжатия каталога и его дочерних элементов. Я нашел категорию CocoaDev, часто упоминаемую здесь, но в конечном итоге остановился на категории, созданной для молекул. Моя проблема связана не столько с категорией сжатия, сколько с преобразованием каталога в допустимый объект NSData. Я хочу, чтобы люди могли удалить файл с помощью любого существующего приложения. Я заглянул в NSFileManager и сериализовал содержимое каталога и сжал его, но я подозреваю, что это запретило бы архиву быть дефлируемым.
Где я ошибаюсь? Будет ли недостаточно NSData?
Комментарии:
1. Не уверен, почему вы хотите задействовать nsdata
2. И категории, почему бы просто не использовать tar и gzip или аналогичные
3. Я хотел избежать использования NSTask для запуска другого приложения для выполнения сжатия. Я относительно новичок в разработке Objective-C / Cocoa, часто ли приложения вызывают внешние программы?
4. вы должны посмотреть на code.google.com/p/ziparchive
Ответ №1:
звучит так, zip -r (more arguments here)
что может сработать для вас.
Комментарии:
1. Вы предлагаете мне использовать zip через NSTask?
2. @Doomspork использование NSTask — это один из способов вызова
zip
. Я хотел избежать использования NSTask для запуска другого приложения для выполнения сжатия. Я относительно новичок в разработке Objective-C / Cocoa — не беспокойтесь о том, чтобы заново изобрести эту функциональность. используйте что-то, что хорошо работает и очень совместимо. вы сэкономите массу времени, используя zip, предполагая, что он подходит для ваших нужд. (продолжение)3. (продолжение) часто ли приложения вызывают внешние программы? — ну, это зависит от программы и от того, что выполняется. судя по вопросу: это происходит гораздо чаще, чем вы думаете. если вы разрабатываете программное обеспечение: компилятор, ассемблер, компоновщик, make, ваша scm-система и множество других процессов являются внешними (в большинстве случаев). внешние процессы очень распространены и в других приложениях.