Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Cabinet (file format)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Design == A CAB archive can contain up to 65,535 ''folders'' (distinct from standard operating system directories), each of which can contain up to 65,535 files for a maximum of 4,294,836,225. Internally, each folder is treated as a [[solid compression|single compressed block]], which provides more efficient compression than individually compressing each file. Every entry in a folder has to be a file.<ref name="msdn.microsoft.com">[https://msdn.microsoft.com/en-us/library/bb267310.aspx Microsoft Cabinet Format]</ref> Due to this structure, it is not possible to store empty folders in CAB archives. The following shows an example a CAB file structure, demonstrating the relationship between folders and files: {{tree list}} * CAB file ** First folder *** {{samp|Records/Student_01[[.tsv]]}} *** {{samp|Records/Photos/Student_01[[.jpg]]}} ** Second folder *** {{samp|Records/Student_02.tsv}} *** {{samp|Records/Photos/Student_02.jpg}} {{tree list/end}} How paths should be handled is not specified in the CAB file format, leaving it to the software implementation: * Some affix file paths to filenames only, as if all files in a CAB archive are in a single folder. [[IExpress]] works this way, as does Microsoft Windows Explorer, which can open CAB archives as a folder. * Some can store the paths, and upon extraction, create folders as necessary. {{mono|CABARC.EXE}} and {{mono|EXTRACT.EXE}} (tools from Microsoft Cabinet SDK<ref>{{cite web|title=Microsoft Cabinet Software Development Kit|url=https://support.microsoft.com/kb/310618|work=Support|publisher=Microsoft|access-date=27 March 2013}}</ref>) as well as {{samp|lcab}}<ref>{{cite web|title=lcab|url=http://freecode.com/projects/lcab|work=Freecode|publisher=Dice|access-date=27 March 2013}}</ref> and {{samp|cabextract}}<ref>{{cite web|title=cabextract|url=https://www.cabextract.org.uk/}}</ref> (third-party [[open-source software|open-source]] tools) work this way. * {{mono|EXPAND.EXE}}, only since version 6 (which is included from Windows Vista to above) can extract files to their paths. The previous versions don't do it.<ref>{{cite web|url=http://ss64.org/viewtopic.php?id=1816|title=[Undocumented] [Bugs] Expand.exe (more about it) (Page 1) / Windows CMD Shell / SS64 Forum|website=ss64.org|access-date=21 April 2018}}</ref> The CAB file format may employ the following [[compression algorithm]]s: * [[DEFLATE]]: invented by [[Phil Katz]], the author of the [[ZIP file format]] (specifically, the MSZIP encapsulation)<ref>{{cite web |title=[MS-MCI]: Microsoft ZIP (MSZIP) Compression and Decompression Data Structure |url=https://docs.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-mci/ |website=docs.microsoft.com |date=13 October 2020 |language=en-us}}</ref> * Quantum compression: licensed from David Stafford,<ref>{{Cite book|last=Salomon|first=D. (David)|url=https://archive.org/details/datacompressionc00salo_251/page/n206/mode/2up|title=Data compression : the complete reference|date=2007|publisher=London : Springer|others=Library Genesis|isbn=978-1-84628-602-5|pages=187}}</ref>{{dead|date=October 2023}} the author of the Quantum archiver (not available in all versions of makecab.exe/diamond.exe)<ref>{{cite web |title=Quantum compression format |url=http://www.russotto.net/quantumcomp.html |website=Matthew Russotto |access-date=29 March 2022 |archive-date=11 May 2021 |archive-url=https://web.archive.org/web/20210511035452/http://www.russotto.net/quantumcomp.html |url-status=dead }}</ref><ref>{{Cite web |date=2011-03-04 |title=Cabinet File Format β Open Specifications Documentation |url=https://download.microsoft.com/download/4/d/a/4da14f27-b4ef-4170-a6e6-5b1ef85b1baa/[ms-cab].pdf#page=9 |url-status=live |archive-url=https://web.archive.org/web/20161118224049/https://download.microsoft.com/download/4/d/a/4da14f27-b4ef-4170-a6e6-5b1ef85b1baa/[ms-cab].pdf |archive-date=2016-11-18 |archive-format=PDF |access-date=2023-02-15 |publisher=Microsoft Corporation}}</ref> * [[LZX]]: invented by [[Jonathan Forbes (programmer)|Jonathan Forbes]] and Tomi Poutanen, given to Microsoft when Forbes joined the company * NULL: stored A CAB archive can reserve empty spaces in the archive as well as for each file in the archive, for some application-specific uses like digital signatures or arbitrary data.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)