Wir stoßen oft auf das Szenario, in dem mehrere ZIP-Archive in einem anderen ZIP eingekapselt sind. In solchen Fällen müssen Sie zuerst die übergeordnete ZIP-Datei und dann die verschachtelten Archive nacheinander extrahieren. Um Ihnen die Arbeit zu erleichtern, zeigen wir Ihnen in diesem Artikel, wie Sie die verschachtelten ZIP-Archive in C# .NET extrahieren, ohne komplexen Code schreiben zu müssen.

C# .NET-API zum Extrahieren verschachtelter ZIP-Archive

Um die verschachtelten ZIP-Archive zu entpacken, verwenden wir Aspose.ZIP for .NET. Die API wurde entwickelt, um Archivierungsvorgänge innerhalb der .NET-Anwendungen auszuführen. Es ermöglicht Ihnen, gängige Archivformate nahtlos zu erstellen und zu bearbeiten. Sie können die DLL der API entweder herunterladen oder sie mit NuGet installieren.

PM> Install-Package Aspose.Zip

Extrahieren Sie verschachtelte ZIP-Archive in C#

Um das Extrahieren von verschachtelten ZIP-Archiven zu demonstrieren, haben wir die folgende ZIP-Datei erstellt, die 3 Einträge enthält.

Verschachtelte ZIP-Archive

Verschachtelte ZIP-Archive

Wir werden jedes verschachtelte ZIP-Archiv extrahieren und seinen Inhalt in einem separaten Ordner speichern. Im Folgenden sind die Schritte zum Extrahieren verschachtelter ZIP-Archive in C# aufgeführt.

Das folgende Codebeispiel zeigt, wie verschachtelte ZIP-Archive in C# .NET entpackt werden.

// ZIP-Datei in einem Dateistream öffnen
using (FileStream zipFile = File.Open("Archives/nested-archive.zip", FileMode.Open))
{
    // Laden Sie die ZIP-Datei mit der Archivklasse
    using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
    {
        // Greifen Sie auf jeden Eintrag im ZIP-Archiv zu
        foreach(ArchiveEntry entry in archive.Entries)
        {
            if(entry.Name.ToLower().Contains(".zip"))
            {
                // Speicherstrom für verschachteltes Archiv erstellen
                MemoryStream nestedArchiveStream = new MemoryStream();

                // Archiv in Speicherstrom kopieren
                entry.Open().CopyTo(nestedArchiveStream);

                // Laden Sie das verschachtelte Archiv aus dem Speicherstrom
                using (var nestedArchive = new Archive(nestedArchiveStream))
                {
                    // Archiv auf Festplatte extrahieren.
                    nestedArchive.ExtractToDirectory("Archives/Extracted/"+entry.Name);
                }                               

            }

        } 
    }
}

Das Folgende ist der Screenshot der extrahierten ZIP-Archive.

Extrahieren verschachtelter ZIP-Archive in C# .NET

Entpackte verschachtelte Archive

Holen Sie sich eine kostenlose API-Lizenz

Sie können eine kostenlose temporäre Lizenz erwerben, um Aspose.ZIP für .NET ohne Evaluierungseinschränkungen zu verwenden.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie verschachtelte ZIP-Archive in C# extrahieren. Die Schritt-für-Schritt-Anleitung und das Codebeispiel haben gezeigt, wie jedes verschachtelte Archiv in einen separaten Ordner entpackt wird. Außerdem können Sie Dokumentation besuchen, um andere Funktionen von Aspose.ZIP für .NET zu erkunden. Sie können Ihre Fragen auch über unser Forum stellen.

Siehe auch