Při práci s archivy z vašich aplikací .NET může být nutné sloučit více souborů ZIP nebo TAR. Můžete například chtít extrahovat soubory a složky z více archivů a vložit je do jednoho archivu. Chcete-li toho dosáhnout, tento článek popisuje, jak sloučit více souborů ZIP nebo TAR v C#. Pokryjeme sloučení ZIP do ZIP, TAR do TAR, ZIP do TAR a TAR do ZIP.
- C# API pro sloučení souborů ZIP a TAR
- Sloučit více souborů ZIP v C#
- Sloučit více souborů TAR v C#
- Zkombinujte ZIP s TAR v C#
- Zkombinujte TAR se ZIP v C#
C# .NET API pro sloučení souborů ZIP a TAR
Ke sloučení více archivů ZIP a TAR využijeme Aspose.ZIP pro .NET. Jedná se o funkčně bohaté rozhraní .NET API, které vám umožňuje vytvářet a manipulovat s různými oblíbenými formáty archivů. Můžete si buď stáhnout DLL API, nebo ji nainstalovat přímo pomocí NuGet.
PM> Install-Package Aspose.Zip
Sloučit více souborů ZIP v C#
Začněme naši cestu slučování archivů s formátem ZIP. Vezmeme dva archivy ZIP a shromáždíme jejich záznamy do jednoho souboru ZIP. Následují kroky ke sloučení více souborů ZIP v C#.
- Načtěte první soubor ZIP pomocí třídy Archiv.
- Podobně načtěte druhý soubor ZIP pomocí třídy Archiv.
- Nyní projděte záznamy prvního ZIP pomocí kolekce Archive.Entries.
- Zkopírujte každý ArchiveEntry do objektu MemoryStream pomocí metody ArchiveEntry.Open().CopyTo(MemoryStream).
- Přidejte záznam do druhého ZIP pomocí metody Archive.CreateEntry(string, MemoryStream).
- Uložte sloučený ZIP jako samostatný soubor pomocí metody Archive.Save(string).
Následující ukázka kódu ukazuje, jak sloučit dva soubory ZIP v C#.
// Načtěte zdrojový archiv ZIP
using (Archive sourceArchive = new Archive("Archives/SourceArchive.zip"))
{
// Načíst cílový ZIP archiv
using (Archive destArchive = new Archive("Archives/DestinationArchive.zip"))
{
// Opakujte záznamy
foreach (ArchiveEntry entry in sourceArchive.Entries)
{
// Zkontrolujte, zda položka není adresář. Položky, které jsou adresáři, jsou přeskočeny, ale jejich soubory jsou přidány s ohledem na relativní cesty.
if (!entry.IsDirectory)
{
// Načíst záznam do paměťového proudu
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// Přidejte záznam do cílového ZIP
destArchive.CreateEntry(entry.Name, mem);
}
}
// Uložte sloučený archiv samostatně
destArchive.Save("Archives/merged-archive.zip");
}
}
Sloučit více souborů TAR v C#
Pojďme se nyní podívat, jak sloučit více archivů TAR v C#. Níže jsou uvedeny kroky, jak toho dosáhnout.
- Načtěte první soubor TAR pomocí třídy TarArchive.
- Podobně načtěte druhý soubor TAR pomocí třídy TarArchive.
- Nyní projděte záznamy prvního TAR pomocí kolekce TarArchive.Entries.
- Zkopírujte každý TarEntry do objektu MemoryStream pomocí metody TarEntry.Open().CopyTo(MemoryStream).
- Přidejte záznam do druhého TAR pomocí metody TarArchive.CreateEntry(string, MemoryStream).
- Uložte sloučený TAR pomocí metody TarArchive.Save(string).
Následující ukázka kódu ukazuje, jak sloučit více souborů TAR v C#.
// Načtěte zdrojový archiv TAR
using (TarArchive sourceArchive = new TarArchive("Archives/SourceArchive.tar"))
{
// Načíst cílový archiv TAR
using (TarArchive destArchive = new TarArchive("Archives/DestinationArchive.tar"))
{
// Opakujte záznamy
foreach (TarEntry entry in sourceArchive.Entries)
{
// Zkontrolujte, zda položka není adresář. Položky, které jsou adresáři, jsou přeskočeny, ale jejich soubory jsou přidány s ohledem na relativní cesty.
if (!entry.IsDirectory)
{
// Načíst záznam do paměťového proudu
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// Přidejte položku do cílového TAR
destArchive.CreateEntry(entry.Name, mem);
}
}
// Uložte sloučený archiv samostatně
destArchive.Save("Archives/merged-archive.tar");
}
}
Sloučit ZIP do TAR v C#
V této části uvidíme, jak sloučit soubor ZIP do archivu TAR v C#. Následují kroky k provedení této operace.
- Načtěte soubor ZIP pomocí třídy Archiv.
- Načtěte soubor TAR pomocí třídy TarArchive.
- Nyní procházejte záznamy ZIP pomocí kolekce Archive.Entries.
- Zkopírujte každý ArchiveEntry do objektu MemoryStream pomocí metody ArchiveEntry.Open().CopyTo(MemoryStream).
- Přidejte záznam do TAR pomocí metody TarArchive.CreateEntry(string, MemoryStream).
- Uložte soubor TAR pomocí metody TarArchive.Save(string).
Následující ukázka kódu ukazuje, jak sloučit archiv ZIP do TAR.
// Načtěte zdrojový archiv ZIP
using (Archive zipArchive = new Archive("Archives/SourceArchive.zip"))
{
// Načíst cílový archiv TAR
using (TarArchive tarArchive = new TarArchive("Archives/DestinationArchive.tar"))
{
// Opakujte záznamy
foreach (ArchiveEntry entry in zipArchive.Entries)
{
// Zkontrolujte, zda položka není adresář. Položky, které jsou adresáři, jsou přeskočeny, ale jejich soubory jsou přidány s ohledem na relativní cesty.
if (!entry.IsDirectory)
{
// Načíst záznam do paměťového proudu
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// Přidejte záznam do cílového TAR
tarArchive.CreateEntry(entry.Name, mem);
}
}
// Uložte sloučený archiv samostatně
tarArchive.Save("Archives/merged-archive.tar");
}
}
Zkombinujte TAR se ZIP v C#
Podobně jako v předchozím příkladu můžete sloučit soubor TAR do ZIP. Následující ukázka kódu ukazuje, jak extrahovat soubory z TAR a sloučit je do ZIP.
// Načíst archiv TAR
using (TarArchive tarArchive = new TarArchive("Archives/SourceArchive.tar"))
{
// Načíst archiv ZIP
using (Archive zipArchive = new Archive("Archives/DestinationArchive.zip"))
{
// Opakujte záznamy
foreach (TarEntry entry in tarArchive.Entries)
{
// Zkontrolujte, zda položka není adresář. Položky, které jsou adresáři, jsou přeskočeny, ale jejich soubory jsou přidány s ohledem na relativní cesty.
if (!entry.IsDirectory)
{
// Načíst záznam do paměťového proudu
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// Přidejte záznam do ZIP
zipArchive.CreateEntry(entry.Name, mem);
}
}
// Uložte sloučený archiv samostatně
zipArchive.Save("Archives/merged-archive.zip");
}
}
Získejte bezplatnou licenci API
Aspose.ZIP pro .NET můžete používat bez omezení hodnocení získáním bezplatné dočasné licence.
Závěr
V tomto článku jste se naučili, jak programově sloučit více archivů ZIP nebo TAR v C#. Zejména jsme se zabývali tím, jak dynamicky sloučit soubory ZIP, soubory TAR, ZIP do TAR a TAR do ZIP. Chcete-li prozkoumat více o Aspose.ZIP pro .NET, můžete navštívit dokumentaci. Také můžete své dotazy posílat na naše fórum.