Формат архива CAB
Архивы CAB (Cabinet) используются для упаковки файлов и каталогов в сжатый формат, что позволяет уменьшить размер файлов и удобно распределять их в одном контейнере. Этот формат часто используется в операционных системах Windows для установочных пакетов и обновлений программного обеспечения.
Об архивной информации CAB
CAB-архивы используются для эффективного хранения и распространения файлов, особенно в операционной системе Windows. Файлы CAB используют различные алгоритмы сжатия, включая LZX, MSZIP и Quantum, для уменьшения размера содержащихся в них файлов. Эти архивы могут хранить несколько файлов и каталогов в одном сжатом файле, сохраняя структуру каталогов. CAB-архивы часто используются для установочных пакетов программного обеспечения, распространения драйверов и обновлений Windows. Они поддерживают цифровые подписи, позволяющие проверять целостность и подлинность файлов в архиве.
История развития формата CAB
- 1994: Формат файлов CAB был представлен Microsoft для облегчения распространения пакетов программного обеспечения и обновлений.
- 1995: CAB-файлы использовались при установке приложений в Windows 95.
- 2000: CAB-файлы стали неотъемлемой частью технологии установщика Windows (.msi), помогая развертывать приложения в Windows 2000.
- 2001: Формат CAB был включен в .NET Framework SDK, что повысило его полезность в различных средах разработки.
- 2005: Microsoft расширила использование CAB с выпуском Windows XP и Windows Server 2003, используя их при обновлениях системы и установке драйверов.
- 2008: С появлением Windows Vista и Windows Server 2008 CAB-файлы продолжали широко использоваться в обновлениях и пакетах обновлений Windows.
- 2012: CAB-файлы поддерживаются в операционных системах Windows 8 и Windows Server 2012, сохраняя свою роль в развертывании программного обеспечения и обновлениях системы.
- 2021: CAB-файлы остаются важной частью экосистемы Windows, используемой при развертывании драйверов, обновлений системы и установке программного обеспечения в Windows 11.
Структура файла Кабинета
CAB — это двоичный формат файла, предназначенный для хранения нескольких сжатых файлов в одном файле, что делает его пригодным для распространения и развертывания программного обеспечения. CAB-архив состоит из трех основных компонентов:
- Заголовок. Заголовок содержит метаданные об архиве, такие как общее количество файлов, количество папок и информацию об используемых методах сжатия.
- Структуры папок. CAB-файлы могут содержать несколько структур папок, каждая из которых представляет собой логическую группу файлов. Каждая запись папки в CAB-архиве содержит информацию о хранящихся в ней файлах и используемом методе сжатия.
- Данные файла. Фактические данные файла хранятся в архиве CAB и сжимаются с использованием одного из нескольких поддерживаемых алгоритмов. Данные каждого файла обычно хранятся в блоках, что позволяет эффективно сжимать и распаковывать их.
Методы сжатия CAB
Архивы CAB поддерживают различные методы сжатия для эффективного хранения данных. К основным методам сжатия относятся:
- MSZIP: алгоритм сжатия, основанный на алгоритме DEFLATE, используемом в ZIP-файлах. MSZIP обеспечивает хороший баланс между степенью сжатия и скоростью, что делает его популярным выбором для файлов CAB.
- Quantum: более старый метод сжатия, используемый в некоторых CAB-файлах. Сегодня Quantum менее распространен, но использовался в более ранних реализациях формата CAB.
- LZX: алгоритм высокой степени сжатия, обеспечивающий лучшую степень сжатия по сравнению с MSZIP, но за счет более медленной скорости сжатия и распаковки. LZX хорошо подходит для уменьшения размера больших пакетов программного обеспечения и установочных файлов.
- Несжатый: CAB-файлы также могут хранить несжатые данные, что полезно, когда сжатие не требуется или когда требуется быстрый доступ к файлам.
Поддерживаемые операции .cab
Хотя Aspose.Zip в настоящее время не предлагает функций для создания CAB-архивов, он отлично справляется с извлечением их содержимого. Вот разбивка того, чего вы можете достичь:
- Полное извлечение: вы можете использовать API для извлечения всех файлов и папок из CAB-архива.
- Выборочное извлечение: извлечение определенных файлов или папок на основе имен или фильтров.
- Сохранение структуры папок: извлеченные файлы сохраняют свою исходную структуру папок в архиве CAB.
КАБИНА — Внутренняя структура
Формат архива Cabinet (CAB) предназначен для эффективного сжатия и хранения нескольких файлов в одном архиве. Он обычно используется для распространения программного обеспечения, особенно в средах Microsoft. Вот обзор структуры CAB-архива:
Заголовок. CAB-файл начинается с заголовка, который содержит важные метаданные об архиве, например:
- Подпись: идентифицирует файл как CAB-архив (строка ASCII «MSCF»).
- Зарезервированные поля: различные зарезервированные поля для будущего использования или конкретных деталей реализации.
- Размер архива: общий размер CAB-файла.
- Количество папок: указывает, сколько структур папок (логических групп файлов) находится в архиве.
- Количество файлов: общее количество файлов, хранящихся в архиве CAB.
- Смещение до первой папки CFFOLDER: указывает на первую запись папки в архиве.
- Зарезервировано: дополнительные зарезервированные поля.
Структуры папок. Каждый CAB-файл может содержать несколько структур папок. Каждая запись папки содержит:
- Смещение: позиция в CAB-файле, где начинаются данные этой папки.
- Количество блоков данных: указывает, сколько блоков данных находится в папке.
- Тип сжатия: указывает метод сжатия, используемый для файлов в этой папке (например, MSZIP, LZX).
Записи файлов. Архив CAB включает записи для каждого файла с подробным описанием:
- Размер без сжатия: исходный размер файла до сжатия.
- Смещение: позиция в CAB-файле, с которой начинаются сжатые данные файла.
- Индекс папки: указывает, к какой папке принадлежит файл.
- Атрибуты: атрибуты файла (например, только для чтения, скрытый).
- Длина имени файла: длина имени файла.
- Имя файла: имя файла.
Блоки данных: Фактические данные файла хранятся в сжатых блоках данных. Каждый блок включает в себя:
- Сжатые данные: данные файла, сжатые в соответствии с указанным методом (например, MSZIP, LZX).
- Информация о распаковке: метаданные, необходимые для распаковки блока данных, такие как исходный и сжатый размеры.
Дополнительные данные. Некоторые архивы CAB могут включать дополнительные необязательные данные для расширенной функциональности, например:
- Контрольные суммы целостности: для проверки целостности архива.
- Цифровые подписи: для обеспечения подлинности архива.
Популярность CAB и поддержка
CAB-файлы широко используются в Windows для установки программного обеспечения, обновлений и распространения драйверов. Microsoft предоставляет такие инструменты, как MakeCab, Expand и DISM, для создания, извлечения и управления CAB-файлами. CAB-файлы обеспечивают эффективное сжатие, интегрируются с установщиком Windows и могут использоваться для архивов, состоящих из нескольких частей.
Примеры использования CAB-файлов
Архивы CAB хранят файлы в сжатой форме с использованием таких алгоритмов сжатия, как LZX, MSZIP или Quantum. Они позволяют хранить несколько файлов в одном архиве с сохранением структуры каталогов. Ниже приведены примеры кода для распаковки CAB-архивов на C#, Java и Python.Net:
C#
using (var archive = new CabArchive("installer.cab"))
{
archive.ExtractToDirectory(@"C:\extracted");
}
Java
try (CabArchive archive = new CabArchive("installer.cab")) {
archive.extractToDirectory("C:\\extracted");
}
Python.Net
import aspose.zip as az
with az.cab.CabArchive('installer.cab') as archive:
archive.extract_to_directory("C:\\extracted")
Дополнительная информация
Часто Задаваемые Вопросы
1. Что такое CAB-файл и для чего он используется?
Кабинетные файлы — это архивные файлы, используемые в основном Microsoft для эффективного распространения и установки программного обеспечения, системных компонентов и драйверов. Они поддерживают несколько алгоритмов сжатия, таких как MSZIP, Quantum и LZX, для уменьшения размера файлов, сохраняя при этом структурированный, организованный формат для управления содержащимися файлами.
2. Можно ли разделить CAB-файлы на несколько частей?
Да, файлы CAB поддерживают создание архивов, состоящих из нескольких частей. Эта функция полезна для распределения больших наборов данных по нескольким меньшим CAB-файлам, что упрощает управление большими объемами данных и их передачу. При извлечении файлов CAB, состоящих из нескольких частей, все части должны присутствовать и быть доступными для успешного восстановления исходных файлов.
3. Могу ли я создать CAB-файл самостоятельно?
Хотя CAB-файлы можно создавать вручную, обычно удобнее использовать специализированные инструменты, такие как MakeCab (утилита Microsoft) или другое программное обеспечение для архивирования, поддерживающее формат CAB.