2016-08-03 3 views
-3

Я написал zip-класс, который использует функции и код из miniz для: Откройте архив, закройте архив, откройте файл в архиве, закройте файл в архиве и напишите к открытому в данный момент файлу в архиве.Добавление к архиву в zip-архиве

В настоящее время открытие файла в архиве перезаписывает его, если оно уже существует. Я хотел бы узнать, возможно ли APPEND в файл в уже закрытом zip-архиве?

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

Примечание: Я занимаюсь большими файлами, поэтому распаковка и сжатие снова не идеальны и не копируют файлы. Я просто хотел бы «открыть» файл в zip-архиве, чтобы продолжить запись сжатых данных в него.

+0

Поскольку в zip-файле, добавляющем что-то к данным, а затем в zipping не приводит к добавлению чего-то к файлу, а, скорее, при изменении его в нескольких пласах, я считаю, что это невозможно. Закрепление возможно из-за корреляции между различными элементами данных, поэтому нелокально по отношению к определенному элементу данных. –

ответ

1

Я просто хотел бы «открыть» файл в zip-архиве, чтобы продолжить запись сжатых данных в него.

Сжатые файлы не работают как файловая система или папка, где вы можете изменять отдельные файлы. Они сохраняют, например, проверьте суммы, которые необходимо применить для всего архива.

Нет, вы не можете делать такие inplace, но вам нужно распаковать сжатый файл, применить свои изменения и сжать все снова.

+0

Если бы я мог получить статистику файла из архива, такую ​​как заголовок его локального каталога, смещение в архив и т. Д. ... я не мог бы просто отредактировать эту информацию и записать сжатые данные, как если бы я писал новый файл в архив ? –

+0

@WillM Хорошо, если ваш API библиотеки компрессии предоставляет такие функции, продвигайтесь вперед. –

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

  • Нет связанных вопросов^_^