Как читать файлы из несжатого ZIP в C #? - PullRequest
0 голосов
/ 05 ноября 2008

Я создаю приложение для КПК, и мне нужно загрузить / загрузить много маленьких файлов, и моя идея - собрать их в несжатый zip-файл .

Вопрос в том, что хорошая идея прочитать эти файлы из zip , не отделяя их? Как я могу это сделать? Или лучше разархивировать их? Поскольку файлы не сжимаются, мои простые мысли о том, что, возможно, чтение их из zip-файла более или менее эффективно, чем чтение их непосредственно из файловой системы ...

Спасибо за ваше время!

Ответы [ 3 ]

4 голосов
/ 05 ноября 2008

Поскольку есть две разные библиотеки с открытым исходным кодом ( SharpZipLib и Библиотека DotNetZip ) для обработки записи и извлечения файлов из ZIP-файла, зачем беспокоиться о том, чтобы сделать это самостоятельно?

1 голос
/ 04 января 2009

Фууу - не используйте J #.

Библиотека DotNetZip , начиная с v1.7, работает на .NET Compact Framework 2.0 и выше. Он может обрабатывать чтение или запись сжатых или несжатых файлов в архиве ZIP. Исходный дистрибутив включает пример приложения CF. Это действительно просто.

0 голосов
/ 05 ноября 2008

Звучит так, как будто вы хотите использовать архив для группировки ваших файлов.

С точки зрения чтения файлов , разница в том, обрабатываются ли файлы так или иначе, очень мала. Вы должны были бы реализовать способность читать файлы почтового индекса, все же. Даже если вы используете библиотеку, как предложил Джеймс Керран, это означает дополнительную работу, которая может означать дополнительные источники ошибок.

С точки зрения загрузки файлов это имеет больше смысла: загрузчик может собрать все необходимые файлы и должен будет позаботиться только об одной загрузке. Это уменьшает накладные расходы, а также обработку ошибок (если происходит сбой одного обновления, нужно ли удалять все файлы этой группы, уже загруженные?).

Что касается эффективности чтения их из архива и чтения их непосредственно с диска: разница должна быть минимальной. Вам (или вашей zip-библиотеке) необходимо один раз проанализировать структуру zip-каталогов, что довольно просто. Остальное - чтение части файла в память или чтение файла в память.

...