Можно ли возобновить сжатие 7zip? - PullRequest
7 голосов
/ 09 марта 2012

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

Часть требований этого проекта - возобновить работу после сбоя / сбоя питания, поэтому сейчас сжатие выполняется следующим образом:

  • large-file.bin нарезано на N кусочков
  • Сжать каждый кусочек и загрузить его

В случае сбоя, я забираю с последнего среза.

Чтобы оптимизировать скорость загрузки, в настоящее время я пытаюсь отправить весь файл (загрузка возобновляется в случае неудачи), а не отправлять фрагменты один за другим, поэтому я собираюсь сжать весь файл вместо сжатия каждого фрагмента.

Я сейчас использую 7z.dll . Интересно, можно ли в случае сбоя питания сказать от 7z до возобновить сжатие.

Я знаю, что всегда мог реализовать свою собственную процедуру сжатия и реализовать такую ​​функцию, но до того, как пойдет по этому пути, мне интересно, возможно ли это сделать в 7z (у которого уже есть отличная степень сжатия)

1 Ответ

7 голосов
/ 09 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...