Mehrere ZIP- oder TAR-Archive in C# zusammenführen

Beim Arbeiten mit Archiven in Ihren .NET-Anwendungen müssen Sie möglicherweise mehrere ZIP- oder TAR-Dateien zusammenführen. Beispielsweise möchten Sie möglicherweise Dateien und Ordner aus mehreren Archiven extrahieren und sie in einem einzigen Archiv ablegen. Um dies zu erreichen, behandelt dieser Artikel das Zusammenführen mehrerer ZIP- oder TAR-Dateien in C#. Wir werden das Zusammenführen von ZIP in ZIP, TAR in TAR, ZIP in TAR und TAR in ZIP behandeln.

C# .NET-API zum Zusammenführen von ZIP- und TAR-Dateien

Um mehrere ZIP- und TAR-Archive zusammenzuführen, nutzen wir Aspose.ZIP for .NET. Es ist eine funktionsreiche .NET-API, mit der Sie verschiedene gängige Archivformate erstellen und bearbeiten können. Sie können die DLL der API entweder herunterladen oder direkt mit NuGet installieren.

PM> Install-Package Aspose.Zip

Mehrere ZIP-Dateien in C# zusammenführen

Beginnen wir unsere Reise zum Zusammenführen von Archiven mit dem ZIP-Format. Wir nehmen zwei ZIP-Archive und sammeln ihre Einträge in einer einzigen ZIP-Datei. Im Folgenden sind die Schritte zum Zusammenführen mehrerer ZIP-Dateien in C# aufgeführt.

Das folgende Codebeispiel zeigt, wie zwei ZIP-Dateien in C# zusammengeführt werden.

// Laden Sie das Quell-ZIP-Archiv
using (Archive sourceArchive = new Archive("Archives/SourceArchive.zip"))
{
    // Ziel-ZIP-Archiv laden
    using (Archive destArchive = new Archive("Archives/DestinationArchive.zip"))
    {
        // Iterieren Sie über die Einträge
        foreach (ArchiveEntry entry in sourceArchive.Entries)
        {
            // Überprüfen Sie, ob der Eintrag kein Verzeichnis ist. Einträge, die Verzeichnisse sind, werden übersprungen, aber ihre Dateien werden unter Berücksichtigung relativer Pfade hinzugefügt.
            if (!entry.IsDirectory)
            {
                // Eintrag in Speicherstrom laden
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);

                // Eintrag zur Ziel-PLZ hinzufügen
                destArchive.CreateEntry(entry.Name, mem);
            } 
        }

        // Zusammengeführtes Archiv separat speichern
        destArchive.Save("Archives/merged-archive.zip");
    }
}

Mehrere TAR-Dateien in C# zusammenführen

Sehen wir uns nun an, wie Sie mehrere TAR-Archive in C# zusammenführen. Im Folgenden sind die Schritte aufgeführt, um dies zu erreichen.

Das folgende Codebeispiel zeigt, wie mehrere TAR-Dateien in C# zusammengeführt werden.

// Laden Sie das Quell-TAR-Archiv
using (TarArchive sourceArchive = new TarArchive("Archives/SourceArchive.tar"))
{
    // Ziel-TAR-Archiv laden
    using (TarArchive destArchive = new TarArchive("Archives/DestinationArchive.tar"))
    {
        // Iterieren Sie über die Einträge
        foreach (TarEntry entry in sourceArchive.Entries)
        {
            // Überprüfen Sie, ob der Eintrag kein Verzeichnis ist. Einträge, die Verzeichnisse sind, werden übersprungen, aber ihre Dateien werden unter Berücksichtigung relativer Pfade hinzugefügt.
            if (!entry.IsDirectory)
            {
                // Eintrag in Speicherstrom laden
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);

                // Eintrag zum Ziel TAR hinzufügen
                destArchive.CreateEntry(entry.Name, mem);
            }
        }

        // Zusammengeführtes Archiv separat speichern
        destArchive.Save("Archives/merged-archive.tar");
    }
}

ZIP mit TAR in C# zusammenführen

In diesem Abschnitt werden wir sehen, wie man eine ZIP-Datei in C# mit einem TAR-Archiv zusammenführt. Im Folgenden sind die Schritte zum Ausführen dieses Vorgangs aufgeführt.

Das folgende Codebeispiel zeigt, wie ein ZIP-Archiv in TAR eingebunden wird.

// Laden Sie das Quell-ZIP-Archiv
using (Archive zipArchive = new Archive("Archives/SourceArchive.zip"))
{
    // Ziel-TAR-Archiv laden
    using (TarArchive tarArchive = new TarArchive("Archives/DestinationArchive.tar"))
    {
        // Iterieren Sie über die Einträge
        foreach (ArchiveEntry entry in zipArchive.Entries)
        {
            // Überprüfen Sie, ob der Eintrag kein Verzeichnis ist. Einträge, die Verzeichnisse sind, werden übersprungen, aber ihre Dateien werden unter Berücksichtigung relativer Pfade hinzugefügt.
            if (!entry.IsDirectory)
            {
                // Eintrag in Speicherstrom laden
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);

                // Eintrag zum Ziel TAR hinzufügen
                tarArchive.CreateEntry(entry.Name, mem);
            }
        }

        // Zusammengeführtes Archiv separat speichern
        tarArchive.Save("Archives/merged-archive.tar");
    }
}

Kombiniere TAR mit ZIP in C#

Ähnlich wie im vorherigen Beispiel können Sie eine TAR-Datei in ZIP zusammenführen. Das folgende Codebeispiel zeigt, wie Dateien aus einem TAR extrahiert und in einer ZIP-Datei zusammengeführt werden.

// TAR-Archiv laden
using (TarArchive tarArchive = new TarArchive("Archives/SourceArchive.tar"))
{
    // ZIP-Archiv laden
    using (Archive zipArchive = new Archive("Archives/DestinationArchive.zip"))
    {
        // Iterieren Sie über die Einträge
        foreach (TarEntry entry in tarArchive.Entries)
        {
            // Überprüfen Sie, ob der Eintrag kein Verzeichnis ist. Einträge, die Verzeichnisse sind, werden übersprungen, aber ihre Dateien werden unter Berücksichtigung relativer Pfade hinzugefügt.
            if (!entry.IsDirectory)
            {
                // Eintrag in Speicherstrom laden
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);

                // Eintrag zur ZIP hinzufügen
                zipArchive.CreateEntry(entry.Name, mem);
            }
        }

        // Zusammengeführtes Archiv separat speichern
        zipArchive.Save("Archives/merged-archive.zip");
    }
}

Holen Sie sich eine kostenlose API-Lizenz

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

Fazit

In diesem Artikel haben Sie gelernt, wie Sie mehrere ZIP- oder TAR-Archive programmgesteuert in C# zusammenführen. Insbesondere haben wir behandelt, wie ZIP-Dateien, TAR-Dateien, ZIP in TAR und TAR in ZIP dynamisch zusammengeführt werden. Weitere Informationen zu Aspose.ZIP für .NET finden Sie in der Dokumentation. Sie können Ihre Fragen auch in unserem Forum posten.

Siehe auch