Sloučit více archivů ZIP nebo TAR v C#

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# .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#.

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.

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.

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.

Viz také