Дата публикации: 10 июля 2026 г.
Файлы‑архивы позволяют упаковывать несколько файлов и папок в один контейнер, а также сжимать их для экономии места на диске и удобства передачи.
Каждый архив имеет расширение (например, .zip, .rar, .7z), которое сообщает операционной системе и пользователю, какой формат используется и какие части составляют файл‑архив.
Почему важно знать о частях архива?
Понимание внутренней структуры архива помогает:
- выбирать правильные инструменты для распаковки;
- восстанавливать повреждённые архивы;
- оптимизировать процесс сжатия;
- анализировать содержимое без полной распаковки (например, просматривать список файлов).
Общие компоненты большинства архивных форматов
Хотя конкретные форматы различаются, у большинства архивов можно выделить несколько общих частей:
- (Header) – содержит метаданные: сигнатуру формата, версию, параметры сжатия, дату/время создания, а также иногда пароль.
- Таблица каталогов (File Table / Central Directory) – список всех файлов, их имён, размеров, атрибутов и смещений внутри архива.
- Тело архива (Data Blocks) – собственно сжатые данные файлов. В зависимости от формата данные могут быть разбиты на отдельные блоки (chunks) с собственными заголовками.
- Контрольные суммы и CRC – позволяют проверять целостность каждого блока и всего архива в целом.
- Концевой блок (Footer / End of Central Directory Record) – завершает структуру, часто содержит указатели на начало таблицы каталогов и общую статистику.
Популярные форматы архивов и их особенности
ZIP (.zip)
Самый распространённый формат, поддерживаемый почти всеми ОС.
- Header: сигнатура
PK03, версия, флаги шифрования, метод сжатия. - Local File Header: повторяется перед каждым сжатым блоком, содержит имя файла и его атрибуты.
- Central Directory: один раз в конце архива, перечисляет все файлы и их смещения.
- End of Central Directory Record (EOCD): указывает размер и позицию Central Directory, количество записей и комментарий.
RAR (.rar)
Разработан компанией RARLAB, известен высоким уровнем сжатия.
- Marker Block: сигнатура
Rar!+ версии. - Archive Header: общие параметры архива, флаги восстановления.
- File Header: информация о каждом файле (имя, размер, CRC, флаги шифрования).
- Recovery Record: (опционально) блоки восстановления для коррекции повреждённых данных.
- End of Archive: завершающий блок, указывающий конец потока.
7z (.7z)
Формат с открытым исходным кодом, использующий алгоритм LZMA/LZMA2.
- Signature Header: 6‑байтовая сигнатура
7zBC¯27+ версия. - Start Header: смещения к основным блокам (PackInfo, UnpackInfo, SubstreamsInfo).
- PackInfo: информация о сжатых потоках.
- UnpackInfo: данные о декодерах и их параметрах.
- FilesInfo: таблица файлов (имена, атрибуты, размеры).
- End Header: контрольные суммы и маркер конца.
TAR (.tar) + сжатие (gzip .gz, bzip2 .bz2, xz .xz)
Традиционный UNIX‑формат, представляющий собой «ленточный» архив без собственного сжатия.
- Header Block (512 байт): для каждого файла – имя, режим, UID/GID, размер, время, контрольная сумма, тип.
- Data Blocks: непосредственно содержимое файлов, выравненное до 512‑байтовых блоков.
- При добавлении сжатия (например,
.tar.gz) к TAR‑архиву добавляется и тело соответствующего компрессора (gzip, bzip2, xz).
ISO (.iso)
Образ оптического диска, часто используется для дистрибутивов ОС.
- Primary Volume Descriptor: метаданные диска, идентификатор типа.
- Path Table: быстрый доступ к каталогам.
- Directory Records: информация о файлах и папках.
- Data Area: собственно содержимое файлов, размещённое в соответствии с таблицами.
Как определить, какие части присутствуют в конкретном архиве?
Существует несколько способов:
- Использовать специализированные утилиты (
7z l archive.7z,unzip -l archive.zip,rar v archive.rar) – они выводят список файлов и часто показывают размер заголовков. - Открыть файл в шестнадцатеричном редакторе и искать сигнатуры (
PK,Rar!,7z,ustar). - Применять библиотеки для программного анализа (например,
libarchive,SharpCompress), которые позволяют получать структуру в виде объектов.
Практические рекомендации
- Выбирайте формат по задаче: для совместимости – ZIP; для максимального сжатия – 7z или RAR; для создания образов дисков – ISO.
- Следите за целостностью: проверяйте CRC/контрольные суммы после скачивания, используйте опцию
testв архиваторах. - Не игнорируйте концевой блок: в некоторых случаях (повреждённый архив) восстановить можно, используя только Central Directory.
- Для больших архивов разбивайте их на тома: форматы RAR и 7z поддерживают многотомные архивы, где каждый том имеет собственный и таблицу файлов.
Понимание частей архива и их взаимосвязи с расширением файла позволяет более уверенно работать с данными: от простого сжатия до восстановления повреждённых архивов.
Каждый формат имеет свою уникальную структуру, но базовые элементы – , таблица каталогов, данные и контрольные суммы – присутствуют почти везде.
Выбирайте подходящий формат, учитывайте требования к совместимости и уровню сжатия, и не забывайте проверять целостность полученных архивов.
Если у вас остались вопросы по конкретному формату или возникли трудности с восстановлением архива, оставляйте комментарии – будем разбирать вместе!