
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#
- Langkah-langkah untuk Mencipta Flat ZIP Archive
- Menyimpan fail ZIP yang dilapisi
- Batch Pemprosesan Multiple ZIP Arkib
- Dapatkan lesen API percuma
- Kesimpulan dan sumber tambahan
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.