Frage Gibt es in .NET 3.5 eine integrierte Zip-Bibliothek?


Gibt es in .NET 3.5 eine integrierte Zip-Bibliothek?

Wenn nicht, was sind die populären Open-Source-.net-Zip-Bibliotheken.


31
2018-02-26 23:53


Ursprung


Antworten:


Es gibt keine integrierte Bibliothek. Es gibt Open-Source-Optionen.

DotNetZip ist ein. Einfach, einfach zu bedienen. Es hat gute Eigenschaften: AES-Verschlüsselung, reguläre Verschlüsselung, Streams, ZIP64, Dateikommentare, Unicode, Fortschrittsereignisse, mehr. Und es ist kostenlos und Open Source.

Hier ist ein Beispielcode.

    // extract all Photoshop files larger than 100mb
    using (ZipFile zip1 = ZipFile.Read(ZipFileName))
    {
        var LargePhotoShopFiles = zip1.SelectEntries("name = *.psd  and size > 100mb");
        foreach (ZipEntry e in LargePhotoShopFiles)
        {
            if (e.UsesEncryption)
                e.ExtractWithPassword("unpackDirectory", "VerySecret!");
            else 
                e.Extract("unpackDirectory");
        }
    }

22
2018-03-02 22:11



Bearbeiten: Siehe Hinweis in Kommentaren - SharpZipLib ist jetzt nicht mehr gepflegt, und Sie möchten es wahrscheinlich vermeiden.

Open Source: #ZipLib

Ich glaube, dass die Klassen in der System.IO.Compression Namespaces eignen sich gut zum Komprimieren / Dekomprimieren eines einzelnen Datenstroms. Es ist jedoch nichts in das Framework integriert, um mit tatsächlichen ZIP-Dateien fertig zu werden.

EDIT: Wie in Ants Antwort bemerkt, gibt es System.IO.Packaging.ZipPackage aber es ist sicher sieht aus wie das ist wirklich für den Einsatz in WPF konzipiert, und wäre nicht schrecklich bequem für die allgemeine Zip-Datei Handhabung zu verwenden. Es lohnt sich aber zu sehen. Ich wusste es vorher noch nicht ... es ist definitiv eine Untersuchung wert.


32
2018-02-26 23:55



Überprüfen Sie die System.IO.Packaging.ZipPackage-Klasse.


10
2018-02-27 05:02



7Zip wird helfen und es ist in mehreren Sprachen verfügbar


6
2018-02-27 00:00



http://www.icsharpcode.net/OpenSource/SharpZipLib/


4
2018-02-26 23:57



Versuchen System.IO.Compression.DeflateStream.


1
2018-02-26 23:55



Ich werde an zweiter Stelle empfohlen werden http://www.7-zip.org/sdk.html LZMA SDK, aber es ist nicht ZIP.

  1. Es ist öffentlich zugänglich
  2. Es ist schnell auf Dekompression
  3. Es hat die Implementierung vollständig verwaltet
  4. Es ist viel besser komprimiert als ZIP / RAR
  5. Es hat einen sehr geringen Platzbedarf
  6. Es kann als Stream arbeiten

1
2018-04-26 08:17



System.IO.Compression hat ZipArchiv Klasse ab .Net 4.5.


0
2018-04-29 12:17