Kami sering menjumpai skenario di mana banyak arsip ZIP dienkapsulasi di dalam ZIP lain. Dalam kasus seperti itu, pertama-tama, Anda harus mengekstrak ZIP induk dan kemudian arsip bersarang satu per satu. Untuk mempermudah Anda, dalam artikel ini, kami akan menunjukkan cara mengekstrak arsip ZIP bersarang di C# .NET tanpa menulis kode yang rumit.

C# .NET API untuk Mengekstrak Arsip ZIP Bersarang

Untuk mengekstrak arsip ZIP bersarang, kami akan menggunakan Aspose.ZIP for .NET. API dirancang untuk melakukan operasi pengarsipan dari dalam aplikasi .NET. Ini memungkinkan Anda untuk membuat dan memanipulasi format arsip populer dengan mulus. Anda dapat mengunduh DLL API atau menginstalnya menggunakan NuGet.

PM> Install-Package Aspose.Zip

Ekstrak Arsip ZIP Bersarang di C#

Untuk mendemonstrasikan ekstraksi arsip ZIP bersarang, kami telah membuat file ZIP berikut yang berisi 3 entri.

Arsip ZIP Bersarang

Arsip ZIP Bersarang

Kami akan mengekstrak setiap arsip ZIP bersarang dan menyimpan kontennya di folder terpisah. Berikut ini adalah langkah-langkah untuk mengekstrak arsip ZIP bersarang di C#.

Contoh kode berikut menunjukkan cara unzip arsip ZIP bersarang di C# .NET.

// Buka file ZIP dalam aliran file
using (FileStream zipFile = File.Open("Archives/nested-archive.zip", FileMode.Open))
{
    // Muat file ZIP menggunakan kelas Arsip
    using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
    {
        // Akses setiap entri dalam arsip ZIP
        foreach(ArchiveEntry entry in archive.Entries)
        {
            if(entry.Name.ToLower().Contains(".zip"))
            {
                // Buat aliran memori untuk arsip bersarang
                MemoryStream nestedArchiveStream = new MemoryStream();

                // Salin arsip ke aliran memori
                entry.Open().CopyTo(nestedArchiveStream);

                // Muat arsip bersarang dari aliran memori
                using (var nestedArchive = new Archive(nestedArchiveStream))
                {
                    // Ekstrak arsip ke disk.
                    nestedArchive.ExtractToDirectory("Archives/Extracted/"+entry.Name);
                }                               

            }

        } 
    }
}

Berikut ini adalah tangkapan layar dari arsip ZIP yang diekstrak.

Mengekstrak arsip ZIP bersarang di C# .NET

Arsip Bersarang yang tidak di-zip

Dapatkan Lisensi API Gratis

Anda bisa mendapatkan lisensi sementara gratis untuk menggunakan Aspose.ZIP for .NET tanpa batasan evaluasi.

Kesimpulan

Pada artikel ini, Anda telah mempelajari cara mengekstrak arsip ZIP bersarang di C#. Panduan langkah demi langkah dan contoh kode telah menunjukkan cara meng-unzip setiap arsip bersarang ke dalam folder terpisah. Selain itu, Anda dapat mengunjungi dokumentasi untuk menjelajahi fitur lain dari Aspose.ZIP for .NET. Selain itu, Anda dapat mengajukan pertanyaan melalui forum kami.

Lihat juga