Случай

Архив с вашей работой не открывается

Архиватор часто сдаётся из-за одной повреждённой части, даже если почти всё остальное цело.

Момент сбоя

Резервная копия или папка проекта, отправленная одним архивом, и теперь ошибка говорит, что он повреждён. Одно сообщение стоит между вами и месяцами работы, и не видно, что уцелело.

Почему архиватор отказывает

ZIP перечисляет содержимое в центральном каталоге в самом конце, поэтому оборванный файл теряет оглавление. То, что сжато до обрыва, может быть целым.

Что происходит с файлом

Вложенные файлы находятся по собственным сигнатурам, и из целых пишется новый рабочий архив. Затем каждый обрабатывается отдельно: повреждённое видео в повреждённом ZIP может вернуться воспроизводимым в рабочем ZIP.

Что вы получите

Архив, который открывается, и отчёт о сохранённом. Непрерывные RAR и 7z сжимают много файлов одним потоком, поэтому повреждение затрагивает всё дальнейшее и файлов остаётся меньше. Для зашифрованного содержимого нужны целые данные и пароль.

Частые вопросы

Работает ли это с многотомным архивом?

Каждый файл читается отдельно, поэтому один том даёт только своё содержимое.

Сохраняется ли структура папок?

Там, где имена уцелели, да. В отчёте отмечены файлы, потерявшие их.

Источники

Документы, использованные в этом руководстве.

  1. PKWARE: ZIP file format specification
  2. WebAssembly