C# ZIP-Datei packen und entpacken

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

cs_wix_zip_beispielDa Visual Studio leider keine Bibliothek besitzt um ZIP-Dateien (zip) 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
    (visualstudio.com)
  • WIX Toolset
    (wixtoolset.org)

Vorgehensweise

    • WIX Toolset installieren
    • Visual Studio öffnen
    • Neue Windows Forms erstellen
    • Unter References → Add Reference und nach Microsoft.Deployment.Compression.Zip 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.Zip;

      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 ZIP FILE BY ADDING FOLDER (WITH SUB-FOLDERS) USING MINIMUM COMPRESSION
      var zip = new ZipInfo(@"files.zip");
      zip.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 ZIP FILE
      var zip = new ZipInfo(@"files.zip");
      zip.Unpack(@"filesNew");
      }
      catch (Exception ex)
      {
      MessageBox.Show(ex.Message, "Fehler");
      }

Beispieldateien befinden sich im Hauptordner

Fertige Beispielprojektdatei:

CS ZIP Beispiel VS2015 WIX

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

Print Friendly, PDF & Email