CAB-archiefformaat
CAB-archieven (Cabinet) worden gebruikt om bestanden en mappen in een gecomprimeerd formaat te verpakken, waardoor u de bestandsgrootte kunt verkleinen en ze gemakkelijk in één container kunt distribueren. Dit formaat wordt vaak gebruikt in Windows-besturingssystemen voor installatiepakketten en software-updates.
Over CAB-archiefinformatie
CAB-archieven worden gebruikt voor de efficiënte opslag en distributie van bestanden, vooral binnen het Windows-besturingssysteem. CAB-bestanden gebruiken verschillende compressie-algoritmen, waaronder LZX, MSZIP en Quantum, om de grootte van de bestanden die ze bevatten te verkleinen. Deze archieven kunnen meerdere bestanden en mappen opslaan in één enkel gecomprimeerd bestand, waarbij de mappenstructuur behouden blijft. CAB-archieven worden vaak gebruikt voor software-installatiepakketten, stuurprogrammadistributie en Windows-updates. Ze ondersteunen digitale handtekeningen, waardoor de integriteit en authenticiteit van de bestanden in het archief kan worden geverifieerd.
CAB-geschiedenisinformatie
- 1994: Het CAB-bestandsformaat werd door Microsoft geïntroduceerd om de distributie van softwarepakketten en updates te vergemakkelijken.
- 1995: CAB-bestanden werden gebruikt bij de installatie van applicaties in Windows 95.
- 2000: CAB-bestanden werden een integraal onderdeel van de Windows Installer-technologie (.msi) en hielpen bij de implementatie van applicaties op Windows 2000.
- 2001: Het CAB-formaat werd opgenomen in de .NET Framework SDK, waardoor de bruikbaarheid ervan in verschillende ontwikkelomgevingen werd vergroot.
- 2005: Microsoft breidde het CAB-gebruik uit met de release van Windows XP en Windows Server 2003, en gebruikte ze bij systeemupdates en stuurprogramma-installaties.
- 2008: Met de introductie van Windows Vista en Windows Server 2008 werden CAB-bestanden nog steeds veelvuldig gebruikt in Windows-updates en servicepacks.
- 2012: CAB-bestanden werden ondersteund in de besturingssystemen Windows 8 en Windows Server 2012, waarbij hun rol bij software-implementatie en systeemupdates behouden bleef.
- 2021: CAB-bestanden blijven een cruciaal onderdeel van het Windows-ecosysteem en worden gebruikt bij de implementatie van stuurprogramma’s, systeemupdates en software-installaties in Windows 11.
Structuur van het Cabiet-bestand
De CAB is een binair bestandsformaat dat is ontworpen om meerdere gecomprimeerde bestanden in één bestand op te slaan, waardoor het geschikt is voor softwaredistributie en -implementatie. Een CAB-archief bestaat uit drie hoofdcomponenten:
- Koptekst: De koptekst bevat metagegevens over het archief, zoals het totale aantal bestanden, het aantal mappen en informatie over de gebruikte compressiemethoden.
- Mapstructuren: CAB-bestanden kunnen meerdere mapstructuren bevatten, die elk een logische groep bestanden vertegenwoordigen. Elk mapitem in het CAB-archief bevat informatie over de bestanden die het bevat en de gebruikte compressiemethode.
- Bestandsgegevens: De feitelijke bestandsgegevens worden opgeslagen in het CAB-archief, gecomprimeerd met behulp van een van de verschillende ondersteunde algoritmen. De gegevens voor elk bestand worden meestal in blokken opgeslagen, waardoor efficiënte compressie en decompressie mogelijk is.
CAB-compressiemethoden
CAB-archieven ondersteunen een verscheidenheid aan compressiemethoden om gegevens efficiënt op te slaan. De primaire compressiemethoden zijn onder meer:
- MSZIP: een compressie-algoritme gebaseerd op het DEFLATE-algoritme dat wordt gebruikt in ZIP-bestanden. MSZIP biedt een goede balans tussen compressieverhouding en snelheid, waardoor het een populaire keuze is voor CAB-bestanden.
- Quantum: een oudere compressiemethode die in sommige CAB-bestanden wordt gebruikt. Quantum is tegenwoordig minder gebruikelijk, maar werd gebruikt in eerdere implementaties van het CAB-formaat.
- LZX: een algoritme met hoge compressie dat een betere compressieverhouding biedt vergeleken met MSZIP, maar ten koste van lagere compressie- en decompressiesnelheden. LZX is zeer geschikt voor het verkleinen van grote softwarepakketten en installatiebestanden.
- Ongecomprimeerd: CAB-bestanden kunnen ook ongecomprimeerde gegevens opslaan, wat handig is als compressie niet nodig is of als snelle toegang tot de bestanden vereist is.
.cab ondersteunde bewerkingen
Hoewel Aspose.Zip momenteel geen functionaliteit biedt voor het maken van CAB-archieven, blinkt het uit in het extraheren van de inhoud ervan. Hier volgt een overzicht van wat u kunt bereiken:
- Volledige extractie: u kunt de API gebruiken om alle bestanden en mappen uit een CAB-archief te extraheren.
- Selectieve extractie: extraheer specifieke bestanden of mappen op basis van namen of filters.
- Mappenstructuur behouden: de uitgepakte bestanden behouden hun oorspronkelijke mappenstructuur binnen het CAB-archief.
CAB - Interne structuur
Het Cabinet-archiefformaat (CAB) is ontworpen voor efficiënte compressie en opslag van meerdere bestanden binnen één archief. Het wordt vaak gebruikt voor softwaredistributie, vooral in Microsoft-omgevingen. Hier is een overzicht van de structuur van een CAB-archief:
Header: Het CAB-bestand begint met een header die essentiële metagegevens over het archief bevat, zoals:
- Handtekening: identificeert het bestand als een CAB-archief (de ASCII-reeks “MSCF”).
- Gereserveerde velden: Diverse gereserveerde velden voor toekomstig gebruik of specifieke implementatiedetails.
- Archiefgrootte: totale grootte van het CAB-bestand.
- Aantal mappen: geeft aan hoeveel mapstructuren (logische groepen bestanden) zich in het archief bevinden.
- Aantal bestanden: totaal aantal bestanden opgeslagen in het CAB-archief.
- Offset naar eerste CFFOLDER: verwijst naar het eerste mapitem in het archief.
- Gereserveerd: extra gereserveerde velden.
Mapstructuren: Elk CAB-bestand kan meerdere mapstructuren bevatten. Elk mapitem biedt:
- Offset: positie binnen het CAB-bestand waar de gegevens van deze map beginnen.
- Aantal datablokken: geeft aan hoeveel datablokken er in de map staan.
- Compressietype: specificeert de compressiemethode die wordt gebruikt voor de bestanden in deze map (bijvoorbeeld MSZIP, LZX).
Bestandsinvoer: Het CAB-archief bevat gegevens voor elk bestand, met details over:
- Ongecomprimeerde grootte: de oorspronkelijke grootte van het bestand vóór compressie.
- Offset: de positie binnen het CAB-bestand waar de gecomprimeerde bestandsgegevens beginnen.
- Mapindex: specificeert tot welke map het bestand behoort.
- Attributen: bestandskenmerken (bijvoorbeeld alleen-lezen, verborgen).
- Lengte bestandsnaam: lengte van de bestandsnaam.
- Bestandsnaam: de naam van het bestand.
Datablokken: De daadwerkelijke bestandsgegevens worden opgeslagen in gecomprimeerde datablokken. Elk blok bevat:
- Gecomprimeerde gegevens: de bestandsgegevens die zijn gecomprimeerd volgens de opgegeven methode (bijvoorbeeld MSZIP, LZX).
- Decompressie-informatie: metagegevens die nodig zijn om het gegevensblok te decomprimeren, zoals de originele en gecomprimeerde grootte.
Optionele gegevens: Sommige CAB-archieven kunnen aanvullende optionele gegevens bevatten voor uitgebreide functionaliteit, zoals:
- Integriteitscontroles: om de integriteit van het archief te verifiëren.
- Digitale handtekeningen: om de authenticiteit van het archief te garanderen.
Populariteit van de CAB en ondersteuning
CAB-bestanden worden veel gebruikt in Windows voor software-installatie, updates en distributie van stuurprogramma’s. Microsoft biedt tools zoals MakeCab, Expand en DISM om CAB-bestanden te maken, uit te pakken en te beheren. CAB-bestanden bieden efficiënte compressie, integreren met Windows Installer en kunnen worden gebruikt voor meerdelige archieven.
Voorbeelden van het gebruik van kabinetsbestanden
CAB-archieven slaan bestanden op in gecomprimeerde vorm met behulp van compressie-algoritmen zoals LZX, MSZIP of Quantum. Hiermee kunt u meerdere bestanden in één archief opslaan, terwijl de mapstructuur behouden blijft. Hieronder staan codevoorbeelden voor het uitpakken van CAB-archieven in C#, Java en 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")
Aanvullende informatie
Mensen hebben ernaar gevraagd
1. Wat is een CAB-bestand en waarvoor wordt het gebruikt?
Cabinet-bestanden zijn archiefbestanden die voornamelijk door Microsoft worden gebruikt voor de efficiënte distributie en installatie van software, systeemcomponenten en stuurprogramma’s. Ze ondersteunen meerdere compressie-algoritmen, zoals MSZIP, Quantum en LZX, om de bestandsgrootte te verkleinen en tegelijkertijd een gestructureerd, georganiseerd formaat te behouden voor het beheren van ingesloten bestanden.
2. Kunnen CAB-bestanden in meerdere delen worden opgesplitst?
Ja, CAB-bestanden ondersteunen het maken van meerdelige archieven. Deze functie is handig voor het distribueren van grote gegevenssets over verschillende kleinere CAB-bestanden, waardoor het gemakkelijker wordt om grote hoeveelheden gegevens te beheren en over te dragen. Bij het extraheren van CAB-bestanden met meerdere delen moeten alle delen aanwezig en toegankelijk zijn om de originele bestanden succesvol te kunnen reconstrueren.
3. Kan ik zelf een CAB-bestand aanmaken?
Hoewel het mogelijk is om handmatig CAB-bestanden te maken, is het over het algemeen handiger om gespecialiseerde tools te gebruiken, zoals MakeCab (een hulpprogramma van Microsoft) of andere archiveringssoftware die het CAB-formaat ondersteunt.