Menggabungkan Banyak Arsip ZIP atau TAR di C#

Saat bekerja dengan arsip dari dalam aplikasi .NET, Anda mungkin perlu menggabungkan beberapa file ZIP atau TAR. Misalnya, Anda mungkin ingin mengekstrak file dan folder dari banyak arsip dan memasukkannya ke dalam satu arsip. Untuk mencapainya, artikel ini membahas cara menggabungkan beberapa file ZIP atau TAR dalam C#. Kami akan membahas penggabungan ZIP menjadi ZIP, TAR menjadi TAR, ZIP menjadi TAR, dan TAR menjadi ZIP.

C# .NET API untuk Menggabungkan File ZIP dan TAR

Untuk menggabungkan beberapa arsip ZIP dan TAR, kami akan memanfaatkan Aspose.ZIP for .NET. Ini adalah .NET API kaya fitur yang memungkinkan Anda membuat dan memanipulasi berbagai format arsip populer. Anda dapat mengunduh DLL API atau menginstalnya langsung menggunakan NuGet.

PM> Install-Package Aspose.Zip

Menggabungkan Beberapa File ZIP di C#

Mari kita mulai perjalanan menggabungkan arsip dengan format ZIP. Kami akan mengambil dua arsip ZIP dan mengumpulkan entri mereka ke dalam satu file ZIP. Berikut ini adalah langkah-langkah untuk menggabungkan beberapa file ZIP di C#.

Contoh kode berikut menunjukkan cara menggabungkan dua file ZIP di C#.

// Muat arsip ZIP sumber
using (Archive sourceArchive = new Archive("Archives/SourceArchive.zip"))
{
    // Muat arsip ZIP tujuan
    using (Archive destArchive = new Archive("Archives/DestinationArchive.zip"))
    {
        // Ulangi entri
        foreach (ArchiveEntry entry in sourceArchive.Entries)
        {
            // Periksa apakah entri bukan direktori. Entri yang merupakan direktori dilewati, tetapi file mereka ditambahkan dengan menghormati jalur relatif.
            if (!entry.IsDirectory)
            {
                // Memuat entri ke aliran memori
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);

                // Tambahkan entri ke ZIP tujuan
                destArchive.CreateEntry(entry.Name, mem);
            } 
        }

        // Simpan arsip gabungan secara terpisah
        destArchive.Save("Archives/merged-archive.zip");
    }
}

Menggabungkan Beberapa File TAR di C#

Sekarang mari kita lihat cara menggabungkan beberapa arsip TAR di C#. Berikut ini adalah langkah-langkah untuk mencapainya.

Contoh kode berikut menunjukkan cara menggabungkan beberapa file TAR di C#.

// Muat arsip TAR sumber
using (TarArchive sourceArchive = new TarArchive("Archives/SourceArchive.tar"))
{
    // Muat arsip TAR tujuan
    using (TarArchive destArchive = new TarArchive("Archives/DestinationArchive.tar"))
    {
        // Ulangi entri
        foreach (TarEntry entry in sourceArchive.Entries)
        {
            // Periksa apakah entri bukan direktori. Entri yang merupakan direktori dilewati, tetapi file mereka ditambahkan dengan menghormati jalur relatif.
            if (!entry.IsDirectory)
            {
                // Memuat entri ke aliran memori
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);

                // Tambahkan entri ke TAR tujuan
                destArchive.CreateEntry(entry.Name, mem);
            }
        }

        // Simpan arsip gabungan secara terpisah
        destArchive.Save("Archives/merged-archive.tar");
    }
}

Menggabungkan ZIP menjadi TAR di C#

Pada bagian ini, kita akan melihat cara menggabungkan file ZIP ke dalam arsip TAR di C#. Berikut ini adalah langkah-langkah untuk melakukan operasi ini.

Contoh kode berikut menunjukkan cara menggabungkan arsip ZIP ke dalam TAR.

// Muat arsip ZIP sumber
using (Archive zipArchive = new Archive("Archives/SourceArchive.zip"))
{
    // Muat arsip TAR tujuan
    using (TarArchive tarArchive = new TarArchive("Archives/DestinationArchive.tar"))
    {
        // Ulangi entri
        foreach (ArchiveEntry entry in zipArchive.Entries)
        {
            // Periksa apakah entri bukan direktori. Entri yang merupakan direktori dilewati, tetapi file mereka ditambahkan dengan menghormati jalur relatif.
            if (!entry.IsDirectory)
            {
                // Memuat entri ke aliran memori
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);

                // Tambahkan entri ke TAR tujuan
                tarArchive.CreateEntry(entry.Name, mem);
            }
        }

        // Simpan arsip gabungan secara terpisah
        tarArchive.Save("Archives/merged-archive.tar");
    }
}

Gabungkan TAR dengan ZIP di C#

Mirip dengan contoh sebelumnya, Anda dapat menggabungkan file TAR ke dalam ZIP. Contoh kode berikut menunjukkan cara mengekstrak file dari TAR dan menggabungkannya menjadi ZIP.

// Muat arsip TAR
using (TarArchive tarArchive = new TarArchive("Archives/SourceArchive.tar"))
{
    // Muat arsip ZIP
    using (Archive zipArchive = new Archive("Archives/DestinationArchive.zip"))
    {
        // Ulangi entri
        foreach (TarEntry entry in tarArchive.Entries)
        {
            // Periksa apakah entri bukan direktori. Entri yang merupakan direktori dilewati, tetapi file mereka ditambahkan dengan menghormati jalur relatif.
            if (!entry.IsDirectory)
            {
                // Memuat entri ke aliran memori
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);

                // Tambahkan entri ke ZIP
                zipArchive.CreateEntry(entry.Name, mem);
            }
        }

        // Simpan arsip gabungan secara terpisah
        zipArchive.Save("Archives/merged-archive.zip");
    }
}

Dapatkan Lisensi API Gratis

Anda dapat menggunakan Aspose.ZIP for .NET tanpa batasan evaluasi dengan mendapatkan lisensi sementara gratis.

Kesimpulan

Pada artikel ini, Anda telah mempelajari cara menggabungkan beberapa arsip ZIP atau TAR secara terprogram dalam C#. Khususnya, kami telah membahas cara menggabungkan file ZIP, file TAR, ZIP menjadi TAR, dan TAR menjadi ZIP secara dinamis. Untuk mempelajari lebih lanjut tentang Aspose.ZIP for .NET, Anda dapat mengunjungi dokumentasi. Selain itu, Anda dapat memposting pertanyaan Anda ke forum kami.

Lihat juga