Create a Flat ZIP Archive in C#

บทนํา

การจัดการไฟล์ ZIP อาจเป็นความท้าทายโดยเฉพาะอย่างยิ่งเมื่อพวกเขามีไฟล์ที่ถูกเก็บไว้ คู่มือนี้จะช่วยให้คุณผ่านกระบวนการของ โครงสร้าง ZIP ที่ถูกเก็บไว้ โดยการสกัดไฟล์ ZIP ภายในทั้งหมดไปยังไฟล์เดียว โดยใช้ Aspose.ZIP สําหรับ .NET.

ทําไมสร้าง ZIP Flat?

การสร้างไฟล์ ZIP แบบเรียบมีข้อดีหลายอย่าง:

  • ซับซ้อนการจัดการไฟล์ ZIP: ลดความซับซ้อนในการจัดการไฟล์หลายไฟล.
  • extract all nested ZIP content into one archive: แถลงไฟล์เพื่อให้การเข้าถึงได้ง่ายขึ้น.
  • ลดโครงสร้างโฟลเดอร์ที่รุนแรง: การจัดเรียงลําดับของไฟล.

ตารางเนื้อหา

1. ปรับปรุงการประมวลผลไฟล์ ZIP ใน C#

สําหรับการประมวลผลอย่างมีประสิทธิภาพของไฟล์ ZIP เราจะใช้ Aspose.ZIP for .NET. บิตยสารที่มีประสิทธิภาพนี้ให:

  • การสกัด ZIP อัตโนมัติและการบีบอัดใหม.
  • สนับสนุนสําหรับรูปแบบไฟล์หลายรูปแบบ: ZIP, TAR, GZip, และอื่น ๆ.
  • การประมวลผลที่มีประสิทธิภาพ ของไฟล์ขนาดใหญ.

การติดตั้ง

คุณสามารถติดตั้งห้องสมุดได้อย่างง่ายดายผ่าน NuGet:

PM> Install-Package Aspose.Zip

ตัวเลือกคุณสามารถดาวน์โหลด DLL จาก Aspose ดาวน์โหลดหน้า.

2. ขั้นตอนในการสร้างไฟล์ ZIP Flat

โปรดพิจารณา โครงสร้าง ZIP ที่กําหนดเอง ต่อไปน:

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

หลังจากฟลัทเนตเนื้อหา ZIP ภายในทั้งหมดจะได้รับการรวมเข้ากับ ZIP หลัก:

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

ตัวอย่างรหัส

นี่คือวิธีที่คุณสามารถอัตโนมัติการสกัดของไฟล์ ZIP เหล่าน:

// 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");
}

วิธีการนี้ได้อย่างมีประสิทธิภาพ อัตโนมัติการ استخراجไฟล์ ZIP ที่กําหนดเอง ให้การทํางานที่ราบรื่นด้วยฟังก์ชั่นของ C# Archive.

3. การบันทึกไฟล์ ZIP Flattened

เมื่อคุณได้รวบรวมเนื้อหา ZIP เคลือบให้บันทึกไฟล์ ZIP เคลือบโดยใช้รหัสต่อไปน:

parentZip.Save("flattened.zip");

นี่จะช่วยให้คุณมีไฟล์ ZIP เดียวและไม่มีโฟลเดอร์ที่ซับซ้อนซึ่งทําให้การจัดการไฟล์ได้ง่ายขึ้นโดยใช้เทคนิค C# Zip Compression.

4. Batch การประมวลผล Multiple ZIP Archives

หากคุณต้องการ ไฟล์ ZIP มากหลาย ตั้งอยู่ในโฟลเดอร์ที่เฉพาะเจาะจงคุณสามารถใช้รหัสขั้นตอนต่อไปน:

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

วิธีการนี้ช่วยให้การประมวลผล ZIP แบบอัตโนมัติ ช่วยประหยัดเวลาและความพยายามในขณะที่จัดการไฟล์ C# Zip ได้อย่างมีประสิทธิภาพ.

5. ได้รับใบอนุญาต API ฟรี

เพื่อล็อคฟังก์ชั่นเต็มของ Aspose.ZIP คุณสามารถขอใบอนุญาตชั่วคราวฟรี (https://purchase.aspose.com/temporary-license).

สําหรับเอกสารที่ครอบคลุมโปรดเยี่ยมชม **Aspose.ZIP Guide ** หากคุณมีคําถามใด ๆ โปรดอย่าลังเลที่จะมีส่วนร่วมกับชุมชนบน (Forum)https://forum.aspose.net/).

6. ข้อสรุปและทรัพยากรเพิ่มเติม

คําอธิบาย

ในคู่มือนี้เราครอบคลุม:

  • วิธีการกรองไฟล์ ZIP ใน C#
  • การสกัดไฟล์ ZIP ที่กําหนดเอง
  • บันทึกไฟล์ ZIP ที่สิ้นสุด
  • การประมวลผลไฟล์ ZIP มากมายในเวลาเดียวกัน

ด้วย Aspose.ZIP สําหรับ .NET คุณสามารถประยุกต์ใช้และจัดการไฟล์ ZIP ในแอพของคุณได้ได้อย่างมีประสิทธิภาพ เริ่มต้น อัตโนมัติการประมวลผลการประมวลผล ZIP ของคุณ วันน!

แหล่งข้อมูลเพิ่มเติม

สําหรับนักพัฒนาที่ต้องการปรับปรุงความเข้าใจของพวกเขาพิจารณาหัวข้อเหล่าน:

  • C# Create Zip Archive: ค้นหาวิธีการต่างๆในการสร้างไฟล์ ZIP ในแอพ C# ของคุณ.
  • สร้างไฟล์ ZIP C# .NET Core: มุ่งเน้นไปที่ .NET Core เรียนรู้วิธีการที่ดีที่สุดสําหรับการสร้างแฟ้ม Zip.
  • C# extract ไฟล์จาก ZIP: คําแนะนําขั้นตอนเกี่ยวกับการสกัดไฟล์เฉพาะจากไฟล์ Zip.
  • C# Decompress ZIP: คู่มือรายละเอียดเกี่ยวกับการบีบอัดไฟล์ Zip โดยใช้ C#.
  • วิธีการ Zip ไฟล์ใน .NET ด้วย C#: การเดินที่สมบูรณ์แบบบนไฟล์ zipping ใช้ .NET และ C#.
  • C# ZipArchive Extract to Directory: ค้นหาวิธีใช้ ZIPArhive สําหรับการสกัดไฟล์ที่มีประสิทธิภาพ.
  • C# Zipping ไฟล์: ค้นหาวิธีการสําหรับไฟล์ zipping ใน C# เพื่อปรับปรุงประสิทธิภาพและความสะดวกสบาย.
  • .NET Core Create Zip File: ดูรายละเอียดเกี่ยวกับการสร้างไฟล์ ZIP โดยใช้ .NET core และ C#.
  • C# Zip: เรียนรู้เกี่ยวกับการจัดการไฟล์ ZIP อย่างมีประสิทธิภาพใน C#.
  • C# Zip Example: ตรวจสอบตัวอย่างทางปฏิบัติของไฟล์ zipping ใน C# เพื่อให้กระบวนการพัฒนาของคุณเรียบง่าย.
  • .NET Core Zip: การปฏิบัติที่ดีที่สุดในการทํางานกับไฟล์ ZIP ในแอพ .NET core.
  • C# Open ZIP: ทําความเข้าใจวิธีการเปิดและอ่านไฟล์ Zip อย่างมีประสิทธิภาพ.
  • C# อ่านไฟล์จาก ZIP: เทคนิคการอ่านไฟล์เฉพาะที่เก็บไว้ในไฟล์ Zip.
  • C# Zip Lists: เรียนรู้วิธี zip lists ของไฟล์ได้อย่างราบรื่นในแอพของคุณ.
  • C# Zipping ไฟล์: ดูวิธีการสําหรับไฟล์ zipping มากขึ้น.
  • .NET Core Zip: บทวิจารณ์ในการจัดการไฟล์ ZIP หลักของ NET.
  • C# Archive: เรียนรู้วิธีใช้คลาส Archive สําหรับการจัดการ ZIP ที่ครอบคลุม.

More in this category