ลบไฟล์ใน ZIP Archive ใน C# .NET

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

C# .NET API เพื่อลบไฟล์ภายใน ZIP Archives

Aspose.ZIP for .NET เป็น API ที่มีประสิทธิภาพซึ่งมีฟีเจอร์การเก็บถาวรที่หลากหลาย ช่วยให้คุณสร้างและจัดการกับไฟล์เก็บถาวรในรูปแบบยอดนิยม เช่น ZIP, TAR, 7z และ GZip เราจะใช้ API นี้เพื่อลบไฟล์ภายใน ZIP archives แบบไดนามิก คุณสามารถติดตั้ง API จาก NuGet หรือ ดาวน์โหลด DLL และอ้างอิงด้วยตนเอง

PM> Install-Package Aspose.Zip 

ลบไฟล์ภายในไฟล์เก็บถาวร ZIP ใน C#

มีสองวิธีในการลบไฟล์ภายในไฟล์ ZIP โดยใช้ Aspose.ZIP for .NET หนึ่งกำลังใช้ดัชนีของไฟล์ในขณะที่อีกอันกำลังใช้คลาส ArchiveEntry มาดูวิธีการใช้ทั้ง 2 วิธีข้างต้นกัน

ลบไฟล์ใน ZIP โดยใช้ ArchiveEntry

Aspose.ZIP for .NET แสดงถึงแต่ละไฟล์/โฟลเดอร์ภายใน ZIP เป็นวัตถุ ArchiveEntry และไฟล์และโฟลเดอร์ทั้งหมดสร้างชุดของวัตถุ ArchiveEntry ดังนั้น หากต้องการลบไฟล์ออกจาก ZIP คุณสามารถเข้าถึงและลบวัตถุ ArchiveEntry ที่เกี่ยวข้องออกจากคอลเลกชันได้ ต่อไปนี้เป็นขั้นตอนในการลบไฟล์จากไฟล์ ZIP ใน C#

  • โหลดไฟล์ ZIP โดยใช้คลาส Archive
  • วนซ้ำรายการในคอลเลกชัน Archive.Entries
  • กรองไฟล์/โฟลเดอร์ที่ต้องการและเพิ่มลงในรายการ
  • ลบแต่ละรายการในรายการโดยใช้เมธอด Archive.DeleteEntry(ArchvieEntry)
  • บันทึกไฟล์ ZIP ที่อัปเดตโดยใช้เมธอด Archive.Save(string)

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการลบไฟล์ภายในไฟล์ ZIP ใน C#

// โหลดไฟล์ ZIP
using (var archive = new Archive("Archives/archive.zip"))
{
    // รายการที่จะเก็บไฟล์ที่จะลบ
    List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();

    // วนซ้ำรายการ ZIP
    foreach(ArchiveEntry entry in archive.Entries)
    {
        // เพิ่มไฟล์/โฟลเดอร์ในรายการ
        if(entry.Name.ToLower().Contains("source"))
        {
            entriesToDelete.Add(entry);
        }
    } 

    // ลบรายการที่แสดงทั้งหมด
    foreach(var entry in entriesToDelete)
    {
        archive.DeleteEntry(entry);
    }

    // บันทึกไฟล์เก็บถาวรที่อัปเดต
    archive.Save("Archives/updated-archive.zip");
}

ลบไฟล์ใน ZIP โดยใช้ดัชนี

คุณยังสามารถลบรายการ ZIP โดยใช้ดัชนี ต่อไปนี้เป็นขั้นตอนในการลบไฟล์/โฟลเดอร์ออกจากไฟล์ ZIP โดยใช้ดัชนี

  • โหลดไฟล์ ZIP โดยใช้คลาส Archive
  • ลบไฟล์โดยระบุดัชนีในเมธอด Archive.DeleteEntry(int)
  • บันทึกไฟล์ ZIP ที่อัปเดตโดยใช้เมธอด Archive.Save(string)

ตัวอย่างโค้ด C# ต่อไปนี้แสดงวิธีลบไฟล์ในไฟล์ ZIP โดยใช้ดัชนี

// โหลดไฟล์ ZIP
using (var archive = new Archive("Archives/archive.zip"))
{
    // ลบไฟล์ตามดัชนี
    archive.DeleteEntry(0);

    // บันทึกไฟล์เก็บถาวรที่อัปเดต
    archive.Save("Archives/updated-archive.zip");
}

รับใบอนุญาต API ฟรี

คุณสามารถใช้ Aspose.ZIP for .NET ได้โดยไม่มีข้อจำกัดในการประเมินโดยรับ ใบอนุญาตชั่วคราวฟรี

บทสรุป

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

ดูสิ่งนี้ด้วย