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#-API zum Zusammenführen von ZIP- und TAR-Dateien
- Mehrere ZIP-Dateien in C# zusammenführen
- Mehrere TAR-Dateien in C# zusammenführen
- Kombinieren Sie ZIP mit TAR in C#
- Kombiniere TAR mit ZIP in C#
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.
- Laden Sie die erste ZIP-Datei mit der Klasse Archive.
- Laden Sie auf ähnliche Weise die zweite ZIP-Datei mit der Klasse Archive.
- Durchlaufen Sie nun die Einträge der ersten ZIP mit der Sammlung Archive.Entries.
- Kopieren Sie jeden ArchiveEntry mithilfe der Methode ArchiveEntry.Open().CopyTo(MemoryStream) in ein MemoryStream-Objekt.
- Eintrag zur zweiten ZIP-Datei mit der Methode Archive.CreateEntry(string, MemoryStream) hinzufügen.
- Speichern Sie die zusammengeführte ZIP-Datei mit der Methode Archive.Save(string) als separate Datei.
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.
- Laden Sie die erste TAR-Datei mit der Klasse TarArchive.
- Laden Sie auf ähnliche Weise die zweite TAR-Datei mit der Klasse TarArchive.
- Durchlaufen Sie nun die Einträge des ersten TAR mit der Sammlung TarArchive.Entries.
- Kopieren Sie jeden TarEntry mithilfe der Methode TarEntry.Open().CopyTo(MemoryStream) in ein MemoryStream-Objekt.
- Eintrag zum zweiten TAR mit der Methode TarArchive.CreateEntry(string, MemoryStream) hinzufügen.
- Speichern Sie das zusammengeführte TAR mit der Methode TarArchive.Save(string).
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.
- Laden Sie die ZIP-Datei mit der Klasse Archive.
- Laden Sie die TAR-Datei mit der Klasse TarArchive.
- Durchlaufen Sie nun die Einträge von ZIP mit der Sammlung Archive.Entries.
- Kopieren Sie jeden ArchiveEntry mithilfe der Methode ArchiveEntry.Open().CopyTo(MemoryStream) in ein MemoryStream-Objekt.
- Eintrag zu TAR mit der Methode TarArchive.CreateEntry(string, MemoryStream). hinzufügen
- Speichern Sie die TAR-Datei mit der Methode TarArchive.Save(string).
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.