
เมื่อจัดการกับ ZIP archives คุณอาจพบสถานการณ์ที่ ZIP file มี ZIP files อื่นอยู่ภายใน ทำให้เกิดโครงสร้างที่ซ้อนกัน หากเป้าหมายของคุณคือการทำให้มันเรียบง่ายโดยการดึง ZIP archives ภายในทั้งหมดออกมาใส่ใน ZIP archive ภายนอก คุณมาถูกที่แล้ว ในบทความนี้เราจะสำรวจ วิธีการสร้าง flat ZIP archive ใน C# โดยใช้ Aspose.ZIP for .NET
สารบัญ
- ภาพรวมของ .NET API ในการสร้าง Flat ZIP Archives
- ขั้นตอนในการสร้าง Flat ZIP Archive
- รับใบอนุญาต API ฟรี
- บทสรุป
- ดูเพิ่มเติม
ภาพรวมของ .NET API ในการสร้าง Flat ZIP Archives
ในการสร้าง flat ZIP archives เราจะใช้ Aspose.ZIP for .NET ไลบรารี API การจัดเก็บข้อมูลที่มีประสิทธิภาพนี้ช่วยให้คุณสามารถสร้างและดึงรูปแบบ archive ต่างๆ รวมถึง ZIP, TAR, GZip, และ 7z คุณสามารถติดตั้งไลบรารีนี้ได้ง่ายๆ จาก NuGet หรือดาวน์โหลด DLL จาก ส่วนดาวน์โหลด
PM> Install-Package Aspose.Zip
ขั้นตอนในการสร้าง Flat ZIP Archive ใน C#
เพื่อให้เข้าใจโครงสร้างของ flat ZIP archive ได้ดียิ่งขึ้น ลองพิจารณาตัวอย่างต่อไปนี้ ในตอนแรกเรามี ZIP archive ที่มี ZIP archive อื่นอยู่ภายใน:
parent.zip
├ first.txt
├ inner.zip
│ ├ game.exe
│ └ subitem.bin
└ picture.gif
หลังจากการแปลง ZIP archive นี้ให้เป็นโครงสร้างแบน รายการทั้งหมดจาก inner ZIP จะถูกดึงออกมาใส่ใน parent ZIP ทำให้เกิดโครงสร้างดังนี้:
flatten.zip
├ first.txt
├ picture.gif
├ game.exe
└ subitem.bin
ขั้นตอนการดำเนินการ
นี่คือวิธีการสร้าง flat ZIP archive ใน C# อย่างมีโปรแกรม:
- โหลด Parent ZIP Archive: ใช้คลาส Archive เพื่อโหลด parent ZIP
- สร้างรายการ: สร้างรายการเพื่อเก็บ:
- รายการที่ต้องลบจาก parent ZIP
- รายการที่ถูกดึงออกและชื่อของพวกเขา
- วนรอบผ่าน Archive Entries: วนรอบแต่ละ ArchiveEntry ใน parent ZIP โดยใช้คอลเลกชัน Archive.Entries
- ประมวลผลแต่ละ Entry:
- ตรวจสอบว่า entry เป็น ZIP archive โดยใช้
ArchiveEntry.Name.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase)
- หากใช่ ให้เพิ่มมันลงในรายการของ entries ที่จะลบ
- เปิด entry ลงในวัตถุ MemoryStream โดยใช้
ArchiveEntry.Open().CopyTo(MemoryStream)
- วนรอบผ่าน entries ของ inner ZIP archive ทำดังนี้:
- เพิ่มชื่อของแต่ละ entry ลงในรายการ entries ที่จะเพิ่ม
- โหลดแต่ละ entry ลงใน
MemoryStream
โดยใช้ArchiveEntry.Open().CopyTo(MemoryStream)
- เพิ่ม entry ลงในรายการ entries ที่จะเพิ่มไปยัง parent ZIP
- ตรวจสอบว่า entry เป็น ZIP archive โดยใช้
- ลบ Inner ZIP Entries: วนรอบผ่านรายการของ inner ZIP archives และลบแต่ละ entry โดยใช้ Archive.DeleteEntry(ArchiveEntry) เมธอด
- เพิ่ม New Entries ลงใน Parent ZIP: วนรอบผ่านรายการของ entries ที่จะเพิ่มและรวมแต่ละ entry โดยใช้ Archive.CreateEntry(String, Stream) เมธอด
- บันทึก Parent ZIP Archive: สุดท้าย บันทึก parent ZIP archive ที่แก้ไขโดยใช้ Archive.Save(String) เมธอด
นี่คือตัวอย่างโค้ดที่แสดงวิธีการสร้าง flat ZIP archive ใน C#:
รับใบอนุญาต API ฟรี
คุณสามารถรับ ใบอนุญาตชั่วคราวฟรี เพื่อใช้ Aspose.ZIP for .NET โดยไม่มีข้อจำกัดในการประเมินผล
บทสรุป
ในบทเรียนนี้ คุณได้เรียนรู้วิธีการสร้าง flat ZIP archive อย่างมีประสิทธิภาพโดยใช้ C# เราได้แสดงกระบวนการดึง inner ZIP archives ออกมาใส่ใน parent ZIP เพื่อหลีกเลี่ยงโฟลเดอร์ที่ซ้อนกัน สำหรับข้อมูลเพิ่มเติม โปรดตรวจสอบ Aspose.ZIP for .NET documentation หรือ ติดต่อเราผ่าน ฟอรัม
ดูเพิ่มเติม
- เพิ่มไฟล์หรือโฟลเดอร์ลงใน ZIP Archives ใน C#
- แตกไฟล์ใน ZIP Archives โดยใช้ C#
- รวม ZIP หรือ TAR Archives หลายไฟล์ใน C#
- สร้าง Executable Self-extracting Archive ใน C#
โดยการทำตามขั้นตอนเหล่านี้ คุณสามารถนำ C# flat zip file compression ไปใช้ในแอปพลิเคชันของคุณได้อย่างง่ายดาย โดยมั่นใจได้ว่าจะมี single file zip archive ที่มีประสิทธิภาพและจัดการง่าย