Кабинет (формат файла)
![]() | Эта статья , возможно, содержит оригинальные исследования . ( Октябрь 2020 г. ) |
![]() | |
Расширение имени файла |
.такси |
---|---|
Тип интернет-СМИ |
приложение/vnd.ms-cab-сжатое |
Единый идентификатор типа (UTI) | public.archive.cab |
конформация ИМВП | public.data публичный.архив |
Магическое число | MSCF |
Разработано | Майкрософт |
Тип формата | Формат архивного файла |
Кабинет (или CAB ) — это формат архивного файла для Microsoft Windows , который поддерживает сжатие данных без потерь и встроенные цифровые сертификаты, используемые для поддержания целостности архива. Кабинетные файлы имеют .cab
расширения имен файлов и распознаются по их первым четырем байтам (также называемым их магическим числом ) MSCF . Кабинетные файлы первоначально были известны как файлы Diamond.
Дизайн
[ редактировать ]Архив CAB может содержать до 65 535 папок (в отличие от стандартных каталогов операционной системы), каждая из которых может содержать до 65 535 файлов, максимум 4 294 836 225. Внутри каждая папка рассматривается как один сжатый блок , что обеспечивает более эффективное сжатие, чем индивидуальное сжатие каждого файла.
Каждая запись в папке должна быть файлом. [ 1 ] Из-за такой структуры в CAB-архивах невозможно хранить пустые папки.
Ниже показан пример структуры CAB-файла, демонстрирующий взаимосвязь между папками и файлами:
То, как следует обрабатывать пути, не указано в формате CAB-файла, оставляя это на усмотрение программной реализации:
- Некоторые пути к файлам добавляются только к именам файлов, как если бы все файлы в CAB-архиве находились в одной папке. IExpress работает таким же образом, как и Microsoft Windows Explorer, который может открывать CAB-архивы как папку.
- Некоторые могут хранить пути и при извлечении создавать папки по мере необходимости. CABARC.EXE и EXTRACT.EXE (инструменты из Microsoft Cabinet SDK) [ 2 ] ) а также lcab [ 3 ] и экстракт кабачка [ 4 ] (сторонние инструменты с открытым исходным кодом ) работают таким образом.
- EXPAND.EXE , только начиная с версии 6 (которая включена в Windows Vista и выше) может извлекать файлы по их путям. Предыдущие версии этого не делают. [ 5 ]
Формат файла CAB может использовать следующие алгоритмы сжатия :
- DEFLATE : изобретен Филом Кацем , автором формата файлов ZIP (в частности, инкапсуляции MSZIP). [ 6 ]
- Квантовое сжатие: лицензия Дэвида Стаффорда, [ 7 ] [ мертвая ссылка ] автор архиватора Quantum (есть не во всех версиях makecab.exe/diamond.exe) [ 8 ] [ 9 ]
- LZX : изобретен Джонатаном Форбсом и Томи Путаненом, передан Microsoft, когда Форбс присоединился к компании.
- NULL: сохранено
В CAB-архиве могут быть зарезервированы пустые места в архиве, а также для каждого файла в архиве для некоторых специфических приложений, таких как цифровые подписи или произвольные данные.
Реализации
[ редактировать ]Microsoft Windows поддерживает создание файлов CAB-архива с помощью makecab
утилита командной строки . Он поддерживает извлечение содержимого файлов CAB-архива с помощью проводника , API настройки командной строки. и использования команд expand.exe
, [ 10 ] extract.exe
и extrac32.exe
. [ 11 ] [ 12 ]
Другое известное программное обеспечение с поддержкой архивов CAB включает WinZip , WinRAR или 7-Zip . Вышеупомянутое cabextract
это общий инструмент для систем Linux, [ 13 ] но способен только извлекать архивы. gcab
однако инструмент может как извлекать, так и создавать CAB-архивы. [ 14 ] Полный список см. в разделе Сравнение файловых архиваторов § форматы архивов .
Использование
[ редактировать ]Разнообразные технологии установки Microsoft используют формат CAB: к ним относятся установщик Windows , программа установки Windows (от Windows 95 до Windows Server 2003 ), API установки , установщик устройств , Theme Pack и AdvPack (используется Internet Explorer для установки ActiveX компонентов ). Файлы CAB также часто связаны с самораспаковывающимися программами, такими как IExpress , где исполняемая программа извлекает связанный файл CAB. Файлы CAB также иногда встраиваются в другие файлы. Например, файлы MSI и MSU обычно включают один или несколько встроенных CAB-файлов.
Windows использует формат CAB для архивирования журнала компонентного обслуживания (CBS), который хранится в папке C:\Windows\Logs\CBS . Ошибка в процессе сжатия может привести к неконтролируемому созданию бесполезных файлов журналов как в этой папке, так и в C:\Windows\Temp , который может занимать дисковое пространство до полного заполнения жесткого диска. [ 15 ] [ 16 ] Удаление файлов без соблюдения определенной процедуры [ 16 ] может привести к ускоренному восстановлению удаленных файлов.
В системах Linux архивы CAB используются fwupd для распространения обновлений встроенного ПО от поставщиков оборудования. [ 17 ] который можно записать в энергонезависимую память .
Связанные форматы
[ редактировать ]The .cab
Расширение имени файла также используется другими программами установки (например, InstallShield ) для их собственных форматов архивирования. InstallShield использует zlib для сжатия (см. Deflate ), но их заголовки не такие же, как у файлов Microsoft CAB, поэтому они несовместимы и ими нельзя манипулировать или редактировать с помощью программ, созданных для стандартного формата CAB. Специализированные сторонние утилиты, такие как Unshield, могут извлекать этот конкретный проприетарный формат. [ 18 ] Этот формат имеет другое магическое число ИСЦ( . [ 19 ]
Установщик Windows CE использует вариант формата Microsoft CAB с MSCE\0\0\0 магия. [ 19 ] Сжатие обычно НЕТ, но также можно найти MSZIP. [ 20 ]
Microsoft Publisher имеет функцию «Pack and Go», которая объединяет документ издателя вместе со всеми внешними ссылками в CAB-файл с .PUZ
расширение. Эти файлы предназначены для активации с помощью сопутствующего файла .EXE, который распространяется вместе с .PUZ
файл. Эти файлы можно открыть с помощью любой программы извлечения CAB-файлов.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Формат кабинета Microsoft
- ^ «Комплект разработки программного обеспечения Microsoft Cabinet» . Поддерживать . Майкрософт . Проверено 27 марта 2013 г.
- ^ "lcab" . Бесплатный код . Кости . Проверено 27 марта 2013 г.
- ^ «экстракт кабана» .
- ^ «[Недокументированное] [Ошибки] Expand.exe (подробнее о нем) (Страница 1) / Windows CMD Shell / Форум SS64» . ss64.org . Проверено 21 апреля 2018 г.
- ^ «[MS-MCI]: структура данных сжатия и распаковки Microsoft ZIP (MSZIP)» . docs.microsoft.com . 13 октября 2020 г.
- ^ Саломон, Д. (Дэвид) (2007). Сжатие данных: полный справочник . Библиотечный Бытие. Лондон: Спрингер. п. 187. ИСБН 978-1-84628-602-5 .
- ^ «Формат квантового сжатия» . Мэтью Руссотто . Проверено 29 марта 2022 г.
- ^ «Формат файла шкафа — открытая документация по спецификациям» (PDF) . Корпорация Майкрософт. 4 марта 2011 г. Архивировано (PDF) из оригинала 18 ноября 2016 г. . Проверено 15 февраля 2023 г.
- ^ развернуть - Windows CMD - SS64.com
- ^ Как извлечь CAB-файл с помощью инструментов командной строки в Windows 10.
- ^ Extrac32 – Распаковать файлы – Windows CMD – SS64.com
- ^ Как извлечь CAB-файлы в Linux [ постоянная мертвая ссылка ]
- ^ проект gcab в GNOME
- ^ «Очистка журналов компонентного обслуживания» . Microsoft TechNet . 7 июля 2017 г.
- ^ Jump up to: а б Леонхард, Вуди (25 августа 2016 г.). «Ошибка сжатия файла журнала Windows 7 может заполнить ваш жесткий диск» . Компьютерный мир . Архивировано из оригинала 8 января 2019 года . Проверено 8 января 2019 г.
- ^ «LVFS: Поставщики оборудования» . Проект обслуживания встроенного ПО Linux . Проверено 3 мая 2022 г.
- ^ "двагуд/без щита" . Гитхаб . Проверено 21 апреля 2018 г.
- ^ Jump up to: а б «kyz/libmspack: doc/magic» . Гитхаб . 2 января 2022 г.
- ^ «Формат файла установочного шкафа Windows CE (.CAB)» . экстракт кабана .
Внешние ссылки
[ редактировать ]
- Microsoft Cabinet SDK — обновленные версии этих ресурсов доступны в Microsoft Windows SDK.
- Комплект разработки программного обеспечения кабинета (CAB SDK) — загрузка всех версий Microsoft CAB SDK (бесплатно)