C# CAB-Datei packen und entpacken

In C# können auf einfachste Weise Dateien und Ordner gepackt und wieder entpackt werden.

cs_wix_cab_beispielDa Visual Studio leider keine Bibliothek besitzt um Cabinet-Dateien (cab) zu erstellen, wird WIX Toolset benötigt. In diesem Beispiel wurde das englischsprachige Visual Studio Community verwendet. Die dazugehörige Dokumentation ist folgendermaßen zu finden:

  • 32-Bit: %ProgramFiles%\WiX Toolset v3.11\doc\DTFAPI.chm
  • 64-Bit: %ProgramFiles(x86)%\WiX Toolset v3.11\doc\DTFAPI.chm

(Versionsnummern können sich ändern)

Verwendete Programme

  • Visual Studio 2015 Community / Visual Studio 2017 Community
    (microsoft.com/de-DE/download/details.aspx?id=48146
    visualstudio.com/downloads/#latestreleases)
  • WIX Toolset
    (wixtoolset.org)

Vorgehensweise

    • WIX Toolset installieren
    • Visual Studio öffnen
    • Neue Windows Forms erstellen
    • Unter References → Add Reference und nach Microsoft.Deployment.Compression.Cab suchen und Häkchen zum Verwenden setzen und mit OK bestätigen
    • In der Codeansicht unter den using folgendes hinzufügen:
      using Microsoft.Deployment.Compression.Cab;

      In der Design-Ansicht 2 Schaltflächen hinzufügen, eine mit Packen und die andere mit Entpacken beschriften

    • Schaltfläche Packen doppelt anklicken und folgenden Code einfügen
      try
      {
      // CREATING CAB FILE BY ADDING FOLDER (WITH SUB-FOLDERS) USING MINIMUM COMPRESSION
      var cab = new CabInfo(@"files.cab");
      cab.Pack(@"files", true, CompressionLevel.Max, null);
      }
      catch (Exception ex)
      {
      MessageBox.Show(ex.Message, "Fehler");
      }

      Zur Sicherheit werden Fehler durch try catch abgefangen

    • Schaltfläche Entpacken doppelt anklicken und folgenden Code einfügen
      try
      {
      // EXTRACTING (UNPACKING) FILES FROM CAB FILE
      var cab = new CabInfo(@"files.cab");
      cab.Unpack(@"filesNew");
      }
      catch (Exception ex)
      {
      MessageBox.Show(ex.Message, "Fehler");
      }

Beispieldateien befinden sich im Hauptordner

Bildschirmschuss

Fertige Beispielprojektdatei:

CS Cabinet Beispiel VS2015 WIX

Ursprüngliche Quelle: codesupport.wordpress.com/2011/02/08/cab/

Print Friendly, PDF & Email