Microsoft CAB

In addition to TAR, gzip, and PKZIP-compatible data compression, Abbrevia also supports Microsoft CAB file formats. With Abbrevia you can easily create and manage the contents of archives in all these important formats.

The CAB file format was developed by Microsoft and is used by a number of software developers for program distribution. With Abbrevia's support for CAB, you too can create and manage the contents of data in this standard file format. In addition, you can use Abbrevia's support for the CAB file format to automate processes that require access to files shipped to your customers in CAB files already, such as drivers and other support files that ship with Microsoft Windows and other programs.

Abbrevia provides two distinct components for CAB file access. One component is for read-only access to CAB files. The other provides full read and write access. By giving you two separate components you can keep your program's size down. Just use the Abbrevia component that suits your needs.

If you're unclear about how the CAB format works, the rest of this page provides just the overview you need.

First, a little terminology

A Cabinet is a collection of compressed files that can be optimized for maximum compression. A set of cabinets can be created to hold the collection in fixed sized files called spanned cabinet sets or simple cabinet sets. A cabinet can also span disks.

A folder is a contiguous block of compressed data within a cabinet or cabinet set. Files in a cabinet archive can be compressed across their file boundaries as a single compression block. Compression ratios improve significantly when files are compressed together as opposed to individually. However, there's a trade-off between random access time to an individual file and compression ratio since an entire folder must be decompressed to extract an item from it. Folders can span cabinets.

A file is an individual item in a cabinet. Files can span folders.

Microsoft supports three lossless compression techniques: storing, MSZip, and LZX. Within a cabinet archive file, any combination of these techniques may be used. MSZip is essentially the same as the deflation compression method used by PKZip. LZX is an LZ77-based compression technique that uses static Huffman encoding. LZX uses more memory, but can produce better compression ratios than MSZip. Stored, of course, means the file is stored into the cabinet uncompressed.

Abbrevia Makes CAB Easy

Abbrevia supports all three Microsoft compression methods and can extract any file from a Microsoft CAB file compatible archive. Abbrevia provides several components that make it easy to add CAB file support to your application. The Abbrevia Cabinet controls provide a friendly interface between your application and the Microsoft CABINET.DLL.

Abbrevia does not directly support encryption for Cabinet files, however Abbrevia can compress files already encrypted and extract files to be decrypted later.

In addition to basic compression support, Abbrevia can also handle Multiple Cabinet Set Spanning with configurable cabinet and folder size thresholds.