Формат архива 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-архив состоит из трех основных компонентов:

  1. Заголовок. Заголовок содержит метаданные об архиве, такие как общее количество файлов, количество папок и информацию об используемых методах сжатия.
  2. Структуры папок. CAB-файлы могут содержать несколько структур папок, каждая из которых представляет собой логическую группу файлов. Каждая запись папки в CAB-архиве содержит информацию о хранящихся в ней файлах и используемом методе сжатия.
  3. Данные файла. Фактические данные файла хранятся в архиве CAB и сжимаются с использованием одного из нескольких поддерживаемых алгоритмов. Данные каждого файла обычно хранятся в блоках, что позволяет эффективно сжимать и распаковывать их.

Методы сжатия CAB

Архивы CAB поддерживают различные методы сжатия для эффективного хранения данных. К основным методам сжатия относятся:

  1. MSZIP: алгоритм сжатия, основанный на алгоритме DEFLATE, используемом в ZIP-файлах. MSZIP обеспечивает хороший баланс между степенью сжатия и скоростью, что делает его популярным выбором для файлов CAB.
  2. Quantum: более старый метод сжатия, используемый в некоторых CAB-файлах. Сегодня Quantum менее распространен, но использовался в более ранних реализациях формата CAB.
  3. LZX: алгоритм высокой степени сжатия, обеспечивающий лучшую степень сжатия по сравнению с MSZIP, но за счет более медленной скорости сжатия и распаковки. LZX хорошо подходит для уменьшения размера больших пакетов программного обеспечения и установочных файлов.
  4. Несжатый: CAB-файлы также могут хранить несжатые данные, что полезно, когда сжатие не требуется или когда требуется быстрый доступ к файлам.

Поддерживаемые операции .cab

Хотя Aspose.Zip в настоящее время не предлагает функций для создания CAB-архивов, он отлично справляется с извлечением их содержимого. Вот разбивка того, чего вы можете достичь:

  • Полное извлечение: вы можете использовать API для извлечения всех файлов и папок из CAB-архива.
  • Выборочное извлечение: извлечение определенных файлов или папок на основе имен или фильтров.
  • Сохранение структуры папок: извлеченные файлы сохраняют свою исходную структуру папок в архиве CAB.

КАБИНА — Внутренняя структура

Формат архива Cabinet (CAB) предназначен для эффективного сжатия и хранения нескольких файлов в одном архиве. Он обычно используется для распространения программного обеспечения, особенно в средах Microsoft. Вот обзор структуры CAB-архива:

  1. Заголовок. CAB-файл начинается с заголовка, который содержит важные метаданные об архиве, например:

    • Подпись: идентифицирует файл как CAB-архив (строка ASCII «MSCF»).
    • Зарезервированные поля: различные зарезервированные поля для будущего использования или конкретных деталей реализации.
    • Размер архива: общий размер CAB-файла.
    • Количество папок: указывает, сколько структур папок (логических групп файлов) находится в архиве.
    • Количество файлов: общее количество файлов, хранящихся в архиве CAB.
    • Смещение до первой папки CFFOLDER: указывает на первую запись папки в архиве.
    • Зарезервировано: дополнительные зарезервированные поля.
  2. Структуры папок. Каждый CAB-файл может содержать несколько структур папок. Каждая запись папки содержит:

    • Смещение: позиция в CAB-файле, где начинаются данные этой папки.
    • Количество блоков данных: указывает, сколько блоков данных находится в папке.
    • Тип сжатия: указывает метод сжатия, используемый для файлов в этой папке (например, MSZIP, LZX).
  3. Записи файлов. Архив CAB включает записи для каждого файла с подробным описанием:

    • Размер без сжатия: исходный размер файла до сжатия.
    • Смещение: позиция в CAB-файле, с которой начинаются сжатые данные файла.
    • Индекс папки: указывает, к какой папке принадлежит файл.
    • Атрибуты: атрибуты файла (например, только для чтения, скрытый).
    • Длина имени файла: длина имени файла.
    • Имя файла: имя файла.
  4. Блоки данных: Фактические данные файла хранятся в сжатых блоках данных. Каждый блок включает в себя:

    • Сжатые данные: данные файла, сжатые в соответствии с указанным методом (например, MSZIP, LZX).
    • Информация о распаковке: метаданные, необходимые для распаковки блока данных, такие как исходный и сжатый размеры.
  5. Дополнительные данные. Некоторые архивы 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")

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

Дополнительная информация

Часто Задаваемые Вопросы

1. Что такое CAB-файл и для чего он используется?

Кабинетные файлы — это архивные файлы, используемые в основном Microsoft для эффективного распространения и установки программного обеспечения, системных компонентов и драйверов. Они поддерживают несколько алгоритмов сжатия, таких как MSZIP, Quantum и LZX, для уменьшения размера файлов, сохраняя при этом структурированный, организованный формат для управления содержащимися файлами.

2. Можно ли разделить CAB-файлы на несколько частей?

Да, файлы CAB поддерживают создание архивов, состоящих из нескольких частей. Эта функция полезна для распределения больших наборов данных по нескольким меньшим CAB-файлам, что упрощает управление большими объемами данных и их передачу. При извлечении файлов CAB, состоящих из нескольких частей, все части должны присутствовать и быть доступными для успешного восстановления исходных файлов.

3. Могу ли я создать CAB-файл самостоятельно?

Хотя CAB-файлы можно создавать вручную, обычно удобнее использовать специализированные инструменты, такие как MakeCab (утилита Microsoft) или другое программное обеспечение для архивирования, поддерживающее формат CAB.