เมื่อทำงานกับ ZIP archives คุณอาจพบสถานการณ์ที่ไฟล์ ZIP มีไฟล์ ZIP อื่น ๆ อยู่ภายใน ทำให้เกิดโครงสร้างที่ซ้อนกัน หากคุณต้องการทำให้สิ่งนี้เรียบง่ายโดยการดึง ZIP archives ภายในทั้งหมดออกมาเป็น ZIP archive ภายนอก คุณมาถูกที่แล้ว ในบทความนี้เราจะสำรวจ วิธีการสร้าง Flat ZIP archive ใน C# โดยใช้ Aspose.ZIP สำหรับ .NET
สารบัญ
- ภาพรวมของ .NET API ในการสร้าง Flat ZIP Archives
- ขั้นตอนในการสร้าง Flat ZIP Archive
- รับใบอนุญาต API ฟรี
- บทสรุป
- ดูเพิ่มเติม
ภาพรวมของ .NET API ในการสร้าง Flat ZIP Archives
ในการสร้าง Flat ZIP archives เราจะใช้ Aspose.ZIP สำหรับ .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: วนรอบผ่านแต่ละ ArchiveEntry ใน parent ZIP โดยใช้คอลเลกชัน Archive.Entries
- ประมวลผลแต่ละรายการ:
- ตรวจสอบว่ารายการนั้นเป็น ZIP archive โดยใช้
ArchiveEntry.Name.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase)
- หากใช่ ให้เพิ่มมันลงในรายการที่ต้องลบ
- เปิดรายการลงในอ็อบเจ็กต์ MemoryStream โดยใช้
ArchiveEntry.Open().CopyTo(MemoryStream)
- วนรอบผ่านรายการของ inner ZIP archive โดยทำดังนี้:
- เพิ่มชื่อของแต่ละรายการลงในรายการที่ต้องเพิ่ม
- โหลดแต่ละรายการลงใน
MemoryStream
โดยใช้ArchiveEntry.Open().CopyTo(MemoryStream)
- เพิ่มรายการลงในรายการที่ต้องเพิ่มใน parent ZIP
- ตรวจสอบว่ารายการนั้นเป็น ZIP archive โดยใช้
- ลบ Inner ZIP Entries: วนรอบผ่านรายการของ inner ZIP archives และลบแต่ละรายการโดยใช้ Archive.DeleteEntry(ArchiveEntry)
- เพิ่มรายการใหม่ลงใน Parent ZIP: วนรอบผ่านรายการของรายการที่จะเพิ่มและรวมแต่ละรายการโดยใช้ Archive.CreateEntry(String, Stream)
- บันทึก Parent ZIP Archive: สุดท้าย บันทึก parent ZIP archive ที่แก้ไขแล้วโดยใช้ Archive.Save(String)
นี่คือตัวอย่างโค้ดที่แสดงวิธีการสร้าง Flat ZIP archive ใน C#:
รับใบอนุญาต API ฟรี
คุณสามารถขอรับ ใบอนุญาตชั่วคราวฟรี เพื่อใช้ Aspose.ZIP สำหรับ .NET โดยไม่มีข้อจำกัดในการประเมินผล
บทสรุป
ในบทแนะนำนี้ คุณได้เรียนรู้วิธีการสร้าง Flat ZIP archive ได้อย่างมีประสิทธิภาพโดยใช้ C# เราได้แสดงกระบวนการดึง inner ZIP archives ออกมาใน parent ZIP ซึ่งช่วยหลีกเลี่ยงโฟลเดอร์ที่ซ้อนกัน สำหรับข้อมูลเพิ่มเติม สามารถตรวจสอบ เอกสาร Aspose.ZIP สำหรับ .NET หรือ ติดต่อเราผ่าน ฟอรัม