Create a Flat ZIP Archive in C#

Introduction

Menguruskan fail ZIP boleh menjadi mencabar, terutamanya apabila mereka mengandungi **hosted archives ** . panduan ini akan membimbing anda melalui proses **flattening struktur Zip ** dengan mengekstrak semua **archives Z IP dalaman ke dalam satu arkib ** menggunakan Aspose.ZIP untuk .NET .

Mengapa anda perlu membuat ZIP rata?

Mencipta arkib ZIP rata menawarkan beberapa kelebihan:

  • Menyederhanakan pengurusan fail ZIP : Mengurangkan kerumitan apabila mengendalikan pelbagai fail.
  • Mengekstrak semua kandungan ZIP yang tertanam ke dalam satu arkib : Mengkonsolidasi fail untuk akses yang lebih mudah.
  • Mengurangkan struktur folder redundant : Mengalirkan organisasi fail.

Jadual Kandungan

Menetapkan pemprosesan arkib ZIP dalam C#

Untuk memproses secara berkesan **arsip ZIP yang disimpan ** , kami akan menggunakan Aspose.ZIP untuk .NET . perpustakaan yang berkuasa ini menyediakan:

  • ** Pengekstrakan ZIP automatik dan pemampatan semula** .
  • ** Sokongan untuk pelbagai format arkib** : ZIP, TAR, GZip, dan banyak lagi.
  • Pengendalian yang cekap untuk arkib besar.

Installation

Anda boleh dengan mudah memasang perpustakaan melalui NuGet:

PM> Install-Package Aspose.Zip

Sebaliknya, anda boleh memuat turun DLL daripada Halaman untuk Downloads.

Langkah-langkah untuk Mencipta Arkib ZIP Flat

Pertimbangkan struktur ZIP ** yang berikut:

parent.zip
 ├ first.txt
 ├ inner.zip
 │ ├ file1.exe
 │ └ data.bin
 └ picture.gif

Selepas flattening, semua kandungan ZIP dalaman akan dikonsolidasikan ke dalam Zip ibu:

flattened.zip
 ├ first.txt
 ├ picture.gif
 ├ file1.exe
 └ data.bin

Kod contoh

Berikut adalah cara anda boleh mengautomatikkan pengekstrakan fail ZIP yang dipanggang:

// Load the parent ZIP file
using (Archive parentZip = new Archive("parent.zip"))
{
    List<ArchiveEntry> toDelete = new List<ArchiveEntry>();
    List<string> newEntryNames = new List<string>();
    List<MemoryStream> newStreams = new List<MemoryStream>();

    foreach (ArchiveEntry entry in parentZip.Entries)
    {
        if (entry.Name.EndsWith(".zip", StringComparison.OrdinalIgnoreCase))
        {
            toDelete.Add(entry);
            using (MemoryStream zipStream = new MemoryStream())
            {
                entry.Open().CopyTo(zipStream);
                zipStream.Position = 0;
                using (Archive innerZip = new Archive(zipStream))
                {
                    foreach (ArchiveEntry innerEntry in innerZip.Entries)
                    {
                        using (MemoryStream entryStream = new MemoryStream())
                        {
                            innerEntry.Open().CopyTo(entryStream);
                            newEntryNames.Add(innerEntry.Name);
                            newStreams.Add(entryStream);
                        }
                    }
                }
            }
        }
    }

    foreach (var entry in toDelete)
        parentZip.DeleteEntry(entry);

    for (int i = 0; i < newEntryNames.Count; i++)
        parentZip.CreateEntry(newEntryNames[i], newStreams[i]);

    parentZip.Save("flattened.zip");
}

Kaedah ini secara berkesan **membuat automatik pengekstrakan fail ZIP ** , memastikan aliran kerja yang lancar dengan fungsi C# Archive .

3. menyimpan fail ZIP rata

Sebaik sahaja anda telah mengekstrak kandungan ZIP yang dihiasi, simpan fail Zip yang dilapisi menggunakan baris kod berikut:

parentZip.Save("flattened.zip");

Ini memastikan anda mempunyai **arsip ZIP tunggal tanpa folder berminyak ** , menjadikan pengurusan fail jauh lebih mudah melalui C# Zip Compression teknik.

4. Batch Pemprosesan Multiple ZIP Arkib

Jika anda perlu flat multiple ZIP archives terletak dalam folder tertentu, anda boleh menggunakan snippet kod berikut:

string[] files = Directory.GetFiles("zip_folder", "*.zip");
foreach (string file in files)
{
    using (Archive archive = new Archive(file))
    {
        archive.ExtractToDirectory("output_folder");
    }
}

Kaedah ini membolehkan pemprosesan ZIP secara automatik **, menjimatkan masa dan usaha sambil mengendalikan fail Zip ** secara berkesan.

5. mendapatkan lesen API percuma

Untuk membuka kunci ** penuh ciri-ciri Aspose.ZIP ** , anda boleh meminta ** [lesen sementara percuma] https://purchase.aspose.com/temporary-license** .

Untuk dokumentasi yang komprehensif, lawati Aspose.ZIP Guide ** .Jika anda mempunyai sebarang soalan, berasa bebas untuk melibatkan diri dengan komuniti di ** Forum Aspose .

6. kesimpulan dan sumber tambahan

Summary

Dalam panduan ini, kami meliputi:

  • Bagaimana untuk melipat fail ZIP dalam C#
  • Mengekstrak fail ZIP yang tertanam
  • ** Menyelamatkan arkib ZIP terakhir**
  • Mengendalikan beberapa fail ZIP sekaligus

Dengan Aspose.ZIP untuk .NET ** , anda boleh mengekstrak dan menguruskan fail ZIP dengan cekap dalam aplikasi anda.

Sumber tambahan

Bagi pemaju yang ingin meningkatkan pemahaman mereka, pertimbangkan topik-topik ini:

  • C# Create Zip Archive : Pelajari pelbagai kaedah untuk mencipta fail ZIP dalam aplikasi C# anda.
  • Create ZIP File C# .NET Core : Berfokus pada .net Core, belajar amalan terbaik untuk penciptaan fail zip.
  • C# Mengekstrak Fail daripada ZIP : arahan langkah demi langkah mengenai pengeluaran fail tertentu daripada arkib zip.
  • C# Decompress ZIP : Panduan terperinci mengenai pemadaman fail Zip menggunakan C#.
  • Bagaimana untuk Zip Fail dalam .NET dengan C# : Sebuah laluan berjalan lengkap pada fail zipping menggunakan .Net dan C #.
  • C# ZipArchive Extract to Directory : Ketahui bagaimana untuk menggunakannya untuk pengekstrakan fail yang cekap.
  • C# Zipping Files : Mengkaji kaedah untuk zipping fail dalam C# untuk meningkatkan prestasi dan kemudahan.
  • .NET Core Create Zip File : Lihat secara terperinci mengenai penciptaan fail ZIP menggunakan .NET core dan C#.
  • C# Zip : Belajar tentang mengendalikan fail ZIP secara berkesan dalam C#.
  • C# Zip Example : Ulasan contoh praktikal fail zipping dalam C# untuk menyegarkan proses pembangunan anda.
  • .NET Core Zip : Amalan terbaik untuk bekerja dengan fail ZIP dalam aplikasi .NET core.
  • C# Open ZIP : Memahami bagaimana untuk membuka dan membaca fail Zip secara berkesan.
  • C# Membaca fail daripada ZIP : Teknik untuk membaca fail tertentu yang disimpan dalam arkib zip.
  • C# Zip Lists : Ketahui bagaimana untuk zip senarai fail tanpa wayar dalam aplikasi anda.
  • C# Zipping Files : Lihat lebih dekat kaedah untuk zipping fail.
  • .NET Core Zip : Pengenalan kepada pengurusan fail .NET core ZIP.
  • C# Archive : Belajar untuk menggunakan kelas Arkib untuk pemprosesan ZIP yang komprehensif.

More in this category