Buat Arsip ZIP Datar di C#

Saat bekerja dengan arsip ZIP, Anda mungkin menemui skenario di mana file ZIP berisi file ZIP lainnya, menciptakan struktur bersarang. Jika Anda ingin menyederhanakan ini dengan mengekstrak semua arsip ZIP di dalamnya ke dalam arsip luar, Anda berada di tempat yang tepat. Dalam artikel ini, kita akan menjelajahi cara membuat arsip ZIP datar di C# menggunakan Aspose.ZIP untuk .NET.

Daftar Isi

Ikhtisar API .NET untuk Membuat Arsip ZIP Datar

Untuk membuat arsip ZIP datar, kita akan memanfaatkan perpustakaan Aspose.ZIP untuk .NET. API pengarsipan yang kuat ini memungkinkan Anda untuk membuat dan mengekstrak berbagai format arsip, termasuk ZIP, TAR, GZip, dan 7z. Anda dapat dengan mudah menginstal perpustakaan ini dari NuGet atau mengunduh DLL-nya dari bagian unduhan.

PM> Install-Package Aspose.Zip

Langkah-langkah untuk Membuat Arsip ZIP Datar di C#

Untuk lebih memahami struktur arsip ZIP datar, pertimbangkan contoh berikut. Awalnya, kita memiliki arsip ZIP yang berisi arsip ZIP lain:

parent.zip
 ├ first.txt
 ├ inner.zip
 │ ├ game.exe
 │ └ subitem.bin
 └ picture.gif

Setelah mengubah arsip ZIP ini menjadi struktur datar, semua entri dari arsip ZIP dalamnya akan diekstrak ke dalam ZIP induk, menghasilkan struktur berikut:

flatten.zip
 ├ first.txt
 ├ picture.gif
 ├ game.exe
 └ subitem.bin

Langkah Implementasi

Berikut adalah cara membuat arsip ZIP datar secara programatis di C#:

  1. Muat Arsip ZIP Induk: Gunakan kelas Archive untuk memuat ZIP induk.
  2. Inisialisasi Daftar: Buat daftar untuk menyimpan:
    • Entri yang akan dihapus dari ZIP induk
    • Entri yang diekstrak dan namanya
  3. Iterasi Melalui Entri Arsip: Loop melalui setiap ArchiveEntry di ZIP induk menggunakan koleksi Archive.Entries.
  4. Proses Setiap Entri:
    • Periksa apakah entri adalah arsip ZIP menggunakan ArchiveEntry.Name.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase).
    • Jika iya, tambahkan ke daftar entri yang akan dihapus.
    • Buka entri ke dalam objek MemoryStream menggunakan ArchiveEntry.Open().CopyTo(MemoryStream).
    • Iterasi melalui entri dari arsip ZIP dalam, melakukan hal berikut:
      • Tambahkan nama setiap entri ke daftar entri yang akan ditambahkan.
      • Muat setiap entri ke dalam MemoryStream menggunakan ArchiveEntry.Open().CopyTo(MemoryStream).
      • Tambahkan entri ke daftar entri yang akan ditambahkan ke ZIP induk.
  5. Hapus Entri ZIP Dalam: Loop melalui daftar arsip ZIP dalam dan hapus setiap entri menggunakan metode Archive.DeleteEntry(ArchiveEntry).
  6. Tambahkan Entri Baru ke ZIP Induk: Loop melalui daftar entri untuk ditambahkan dan sertakan setiap entri menggunakan metode Archive.CreateEntry(String, Stream).
  7. Simpan Arsip ZIP Induk: Akhirnya, simpan arsip ZIP induk yang dimodifikasi menggunakan metode Archive.Save(String).

Berikut adalah contoh kode yang menunjukkan cara membuat arsip ZIP datar di C#:

Dapatkan Lisensi API Gratis

Anda dapat memperoleh lisensi sementara gratis untuk menggunakan Aspose.ZIP untuk .NET tanpa batasan evaluasi.

Kesimpulan

Dalam tutorial ini, Anda telah belajar cara membuat arsip ZIP datar dengan efisien menggunakan C#. Kami menunjukkan proses mengekstrak arsip ZIP dalam ke dalam ZIP induk, secara efektif menghindari folder bersarang. Untuk informasi lebih lanjut, silakan lihat dokumentasi Aspose.ZIP untuk .NET, atau hubungi kami melalui forum kami.

Lihat Juga