Helionix

End of central directory signature not found: что делать

Причины ошибки конца центрального каталога ZIP: неполная загрузка, HTML вместо архива, отсутствующий том, ZIP64 и безопасная реконструкция локальных записей.

Сообщение End of central directory signature not found означает, что программа не нашла обязательную конечную запись ZIP в ожидаемой области. Это не отдельный диагноз: файл мог скачаться не полностью, оказаться не ZIP, быть частью многотомного набора, иметь добавленные посторонние данные или действительно потерять конец структуры.

Для диагностики используйте копию файла в инструменте восстановления ZIP Helionix. Сначала нужно определить настоящую причину, а уже затем решать, есть ли смысл сканировать локальные записи.

Наиболее частые причины

ПричинаПризнакПервое действие
Неполное скачиваниеРазмер меньше указанного источникомСкачать повторно под новым именем
Это не ZIPВнутри HTML ошибки или другой форматПроверить сигнатуру и источник
Отсутствует часть набораРядом должны быть сегменты .z01, .z02Собрать все части
Обрезан конецЛокальные записи есть, EOCD отсутствуетПопытаться сохранить ранние записи

Что делать пошагово

  1. Не переименовывайте оригинал в попытке «исправить» формат.
  2. Скопируйте файл и сравните его размер с источником.
  3. Проверьте, завершена ли синхронизация из облака или мессенджера.
  4. Откройте диагностику ошибки EOCD.
  5. Убедитесь, что начало файла содержит структуру ZIP, а не веб-страницу.
  6. Проверьте наличие многотомных сегментов.
  7. Если конец действительно утрачен, просканируйте локальные заголовки.
  8. Сохраните доступные записи в новый контейнер.

Почему смена расширения не помогает

Расширение — только часть имени. Оно не добавляет конечную запись, не восстанавливает смещения и не превращает HTML-страницу с сообщением об ошибке в архив. Иногда сервер отдаёт страницу авторизации под именем download.zip. Проверьте тип по внутренним сигнатурам и повторите загрузку после корректного входа.

EOCD и ZIP64

Обычный ZIP заканчивается записью End of Central Directory, где указаны число элементов, размер и смещение каталога, а также длина комментария. В ZIP64 дополнительно используются расширенная конечная запись и локатор. Программа, не поддерживающая ZIP64, способна выдать похожую ошибку на исправном большом файле. Поэтому важно отличить повреждение от несовместимости.

Можно ли найти EOCD поиском по байтам

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

Когда восстановление возможно

Если отсутствует только каталог, а локальные заголовки и потоки данных сохранились, значительную часть файлов можно прочитать. Если загрузка оборвалась посередине, записи после точки обрыва отсутствуют физически. Последняя запись может быть частичной, а более ранние — исправными. Если файл целиком является не тем содержимым, ремонт ZIP неприменим.

Безопасность найденных записей

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

Посторонние данные до и после ZIP

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

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

Ошибка появилась после отправки по почте. Что делать?

Сравните размер вложения у отправителя и получателя, затем запросите повторную отправку или ссылку на облако. Почтовый клиент мог не завершить загрузку локальной копии.

Можно ли просто добавить EOCD?

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

Почему один архиватор открывает файл, а другой нет?

Отличаются поддержка ZIP64, методов, нестандартных полей и терпимость к повреждению. Успешное отображение списка ещё не подтверждает CRC всех данных.

Итог

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

Проверить ZIP с ошибкой EOCD →