Format archiwum CAB

Archiwa CAB (Cabinet) służą do pakowania plików i katalogów w skompresowanym formacie, co pozwala na zmniejszenie rozmiaru plików i wygodne rozmieszczenie ich w jednym kontenerze. Ten format jest często używany w systemach operacyjnych Windows w przypadku pakietów instalacyjnych i aktualizacji oprogramowania.

Informacje o archiwum CAB

Archiwa CAB służą do wydajnego przechowywania i dystrybucji plików, szczególnie w systemie operacyjnym Windows. Pliki CAB korzystają z różnych algorytmów kompresji, w tym LZX, MSZIP i Quantum, aby zmniejszyć rozmiar zawartych w nich plików. Archiwa te mogą przechowywać wiele plików i katalogów w jednym skompresowanym pliku, zachowując strukturę katalogów. Archiwa CAB są często używane do pakietów instalacyjnych oprogramowania, dystrybucji sterowników i aktualizacji systemu Windows. Obsługują podpisy cyfrowe, pozwalając na weryfikację integralności i autentyczności plików znajdujących się w archiwum.

Informacje o historii CAB

  • 1994: Firma Microsoft wprowadziła format pliku CAB w celu ułatwienia dystrybucji pakietów oprogramowania i aktualizacji.
  • 1995: Pliki CAB zostały wykorzystane podczas instalacji aplikacji w systemie Windows 95.
  • 2000: Pliki CAB stały się integralną częścią technologii Instalatora Windows (.msi), pomagając we wdrażaniu aplikacji w systemie Windows 2000.
  • 2001: Format CAB został włączony do zestawu SDK .NET Framework, zwiększając jego użyteczność w różnych środowiskach programistycznych.
  • 2005: Firma Microsoft rozszerzyła wykorzystanie plików CAB wraz z wydaniem systemów Windows XP i Windows Server 2003, wykorzystując je w aktualizacjach systemu i instalacjach sterowników.
  • 2008: Wraz z wprowadzeniem systemów Windows Vista i Windows Server 2008 pliki CAB nadal były szeroko używane w aktualizacjach systemu Windows i dodatkach Service Pack.
  • 2012: Pliki CAB były obsługiwane w systemach operacyjnych Windows 8 i Windows Server 2012, zachowując ich rolę przy wdrażaniu oprogramowania i aktualizacjach systemu.
  • 2021: Pliki CAB pozostają kluczową częścią ekosystemu Windows, wykorzystywaną do wdrażania sterowników, aktualizacji systemu i instalacji oprogramowania w systemie Windows 11.

Struktura pliku Cabiet

CAB to format pliku binarnego przeznaczony do przechowywania wielu skompresowanych plików w jednym pliku, dzięki czemu nadaje się do dystrybucji i wdrażania oprogramowania. Archiwum CAB składa się z trzech podstawowych komponentów:

  1. Nagłówek: Nagłówek zawiera metadane dotyczące archiwum, takie jak całkowita liczba plików, liczba folderów oraz informacje o zastosowanych metodach kompresji.
  2. Struktury folderów: Pliki CAB mogą zawierać wiele struktur folderów, z których każda reprezentuje logiczne grupowanie plików. Każdy wpis folderu w archiwum CAB zawiera informacje o przechowywanych w nim plikach i zastosowanej metodzie kompresji.
  3. Dane pliku: Rzeczywiste dane pliku są przechowywane w archiwum CAB, skompresowane przy użyciu jednego z kilku obsługiwanych algorytmów. Dane każdego pliku są zwykle przechowywane w blokach, co pozwala na wydajną kompresję i dekompresję.

Metody kompresji CAB

Archiwa CAB obsługują różne metody kompresji w celu wydajnego przechowywania danych. Podstawowe metody kompresji obejmują:

  1. MSZIP: Algorytm kompresji oparty na algorytmie DEFLATE używanym w plikach ZIP. MSZIP zapewnia dobrą równowagę pomiędzy współczynnikiem kompresji i szybkością, co czyni go popularnym wyborem w przypadku plików CAB.
  2. Quantum: starsza metoda kompresji stosowana w niektórych plikach CAB. Kwant jest obecnie mniej powszechny, ale był używany we wcześniejszych implementacjach formatu CAB.
  3. LZX: Algorytm wysokiej kompresji, który zapewnia lepszy współczynnik kompresji w porównaniu do MSZIP, ale kosztem niższych prędkości kompresji i dekompresji. LZX doskonale nadaje się do zmniejszania rozmiaru dużych pakietów oprogramowania i plików instalacyjnych.
  4. Nieskompresowane: pliki CAB mogą również przechowywać nieskompresowane dane, co jest przydatne, gdy kompresja nie jest konieczna lub gdy wymagany jest szybki dostęp do plików.

Obsługiwane operacje .cab

Chociaż Aspose.Zip nie oferuje obecnie funkcjonalności do tworzenia archiwów CAB, doskonale radzi sobie z wyodrębnianiem ich zawartości. Oto zestawienie tego, co możesz osiągnąć:

  • Pełna ekstrakcja: Możesz użyć API do wyodrębnienia wszystkich plików i folderów z archiwum CAB.
  • Ekstrakcja selektywna: Wyodrębnij określone pliki lub foldery na podstawie nazw lub filtrów.
  • Utrzymanie struktury folderów: Wyodrębnione pliki zachowują swoją oryginalną strukturę folderów w archiwum CAB.

CAB - Struktura wewnętrzna

Format archiwum Cabinet (CAB) został zaprojektowany z myślą o wydajnej kompresji i przechowywaniu wielu plików w jednym archiwum. Jest powszechnie używany do dystrybucji oprogramowania, szczególnie w środowiskach Microsoft. Oto przegląd struktury archiwum CAB:

  1. Nagłówek: Plik CAB zaczyna się od nagłówka zawierającego niezbędne metadane dotyczące archiwum, takie jak:

    • Podpis: Identyfikuje plik jako archiwum CAB (ciąg ASCII „MSCF”).
    • Pola zarezerwowane: Różne pola zarezerwowane do wykorzystania w przyszłości lub do konkretnych szczegółów implementacji.
    • Rozmiar archiwum: Całkowity rozmiar pliku CAB.
    • Liczba folderów: wskazuje, ile struktur folderów (logicznych grup plików) znajduje się w archiwum.
    • Liczba plików: Całkowita liczba plików przechowywanych w archiwum CAB.
    • Przesunięcie do pierwszego CFFOLDER: wskazuje pierwszy wpis folderu w archiwum.
    • Zarezerwowane: Dodatkowe pola zarezerwowane.
  2. Struktury folderów: Każdy plik CAB może zawierać wiele struktur folderów. Każdy wpis w folderze zawiera:

    • Przesunięcie: pozycja w pliku CAB, w której rozpoczynają się dane tego folderu.
    • Liczba bloków danych: wskazuje, ile bloków danych znajduje się w folderze.
    • Typ kompresji: Określa metodę kompresji plików w tym folderze (np. MSZIP, LZX).
  3. Wpisy plików: Archiwum CAB zawiera wpisy dla każdego pliku, wyszczególniając:

    • Rozmiar nieskompresowany: Oryginalny rozmiar pliku przed kompresją.
    • Przesunięcie: pozycja w pliku CAB, w której rozpoczynają się skompresowane dane pliku.
    • Indeks folderu: Określa, do którego folderu należy plik.
    • Atrybuty: Atrybuty pliku (np. tylko do odczytu, ukryty).
    • Długość nazwy pliku: Długość nazwy pliku.
    • Nazwa pliku: Nazwa pliku.
  4. Bloki danych: Rzeczywiste dane pliku są przechowywane w skompresowanych blokach danych. Każdy blok zawiera:

    • Skompresowane dane: dane pliku skompresowane zgodnie z określoną metodą (np. MSZIP, LZX).
    • Informacje o dekompresji: metadane potrzebne do dekompresji bloku danych, takie jak rozmiar oryginalny i skompresowany.
  5. Dane opcjonalne: Niektóre archiwa CAB mogą zawierać dodatkowe dane opcjonalne w celu rozszerzenia funkcjonalności, takie jak:

    • Sumy kontrolne integralności: Aby zweryfikować integralność archiwum.
    • Podpisy cyfrowe: Aby zapewnić autentyczność archiwum.

CAB - Struktura wewnętrzna

Popularność CAB i wsparcia

Pliki CAB są szeroko stosowane w systemie Windows do instalacji oprogramowania, aktualizacji i dystrybucji sterowników. Firma Microsoft udostępnia narzędzia takie jak MakeCab, Expand i DISM do tworzenia, wyodrębniania i zarządzania plikami CAB. Pliki CAB oferują wydajną kompresję, integrują się z Instalatorem Windows i mogą być używane do archiwów wieloczęściowych.

Przykłady wykorzystania akt gabinetu

Archiwa CAB przechowują pliki w formie skompresowanej przy użyciu algorytmów kompresji, takich jak LZX, MSZIP lub Quantum. Umożliwiają przechowywanie wielu plików w jednym archiwum przy jednoczesnym zachowaniu struktury katalogów. Poniżej znajdują się przykłady kodu do rozpakowywania archiwów CAB w językach C#, Java i 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

Dodatkowe informacje

Ludzie pytali

1. Co to jest plik CAB i do czego się go używa?

Pliki Cabinet to pliki archiwalne używane głównie przez firmę Microsoft w celu wydajnej dystrybucji i instalacji oprogramowania, komponentów systemu i sterowników. Obsługują wiele algorytmów kompresji, takich jak MSZIP, Quantum i LZX, aby zmniejszyć rozmiary plików przy jednoczesnym zachowaniu uporządkowanego, zorganizowanego formatu do zarządzania zawartymi plikami.

2. Czy pliki CAB można podzielić na wiele części?

Tak, pliki CAB obsługują tworzenie archiwów wieloczęściowych. Ta funkcja jest przydatna do dystrybucji dużych zbiorów danych w kilku mniejszych plikach CAB, co ułatwia zarządzanie dużymi ilościami danych i przesyłanie ich. Podczas wyodrębniania wieloczęściowych plików CAB wszystkie części muszą być obecne i dostępne, aby pomyślnie zrekonstruować oryginalne pliki.

3. Czy mogę samodzielnie utworzyć plik CAB?

Chociaż możliwe jest ręczne tworzenie plików CAB, ogólnie wygodniej jest używać specjalistycznych narzędzi, takich jak MakeCab (narzędzie firmy Microsoft) lub inne oprogramowanie do archiwizacji obsługujące format CAB.