Xóa tệp trong kho lưu trữ ZIP trong C# .NET

Trong khi làm việc với các tệp lưu trữ từ bên trong các ứng dụng .NET của bạn, bạn có thể cần thao tác với các tệp bên trong ZIP. Trong bài trước, bạn đã thấy cách thêm tệp / thư mục trong kho lưu trữ ZIP. Trong bài viết này, bạn sẽ học cách xóa các tệp bên trong tệp nén ZIP theo chương trình trong C#. Vì vậy, chúng ta hãy bắt đầu.

C# .NET API để xóa tệp bên trong kho lưu trữ ZIP

Aspose.ZIP dành cho .NET là một API mạnh mẽ cung cấp một loạt các tính năng lưu trữ. Nó cho phép bạn tạo và thao tác các kho lưu trữ với các định dạng phổ biến bao gồm ZIP, TAR, 7z và GZip. Chúng tôi sẽ sử dụng API này để xóa động các tệp bên trong các kho lưu trữ ZIP. Bạn có thể cài đặt API từ NuGet hoặc tải xuống DLL và tham chiếu nó theo cách thủ công.

PM> Install-Package Aspose.Zip 

Xóa tệp bên trong kho lưu trữ ZIP trong C#

Có hai cách để xóa tệp bên trong kho lưu trữ ZIP bằng Aspose.ZIP cho .NET. Một người đang sử dụng chỉ mục của tệp trong khi người kia đang sử dụng lớp ArchiveEntry. Hãy xem làm thế nào để sử dụng cả hai phương pháp nói trên.

Xóa tệp trong ZIP bằng ArchiveEntry

Aspose.ZIP for .NET đại diện cho mỗi tệp / thư mục bên trong ZIP dưới dạng đối tượng ArchiveEntry và tất cả các tệp và thư mục tạo thành một bộ sưu tập các đối tượng ArchiveEntry. Do đó, để xóa một tệp khỏi ZIP, bạn có thể truy cập và xóa đối tượng ArchiveEntry có liên quan khỏi bộ sưu tập. Sau đây là các bước để xóa một tệp khỏi kho lưu trữ ZIP trong C#.

Mẫu mã sau đây cho thấy cách xóa tệp bên trong kho lưu trữ ZIP trong C#.

// Tải tệp lưu trữ ZIP
using (var archive = new Archive("Archives/archive.zip"))
{
    // Danh sách giữ các tập tin sẽ bị xóa
    List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();

    // Lặp lại các mục nhập ZIP
    foreach(ArchiveEntry entry in archive.Entries)
    {
        // Thêm tệp / thư mục vào danh sách
        if(entry.Name.ToLower().Contains("source"))
        {
            entriesToDelete.Add(entry);
        }
    } 

    // Xóa tất cả các mục được liệt kê
    foreach(var entry in entriesToDelete)
    {
        archive.DeleteEntry(entry);
    }

    // Lưu kho lưu trữ đã cập nhật
    archive.Save("Archives/updated-archive.zip");
}

Xóa tệp trong ZIP bằng cách sử dụng Chỉ mục

Bạn cũng có thể xóa các mục ZIP bằng cách sử dụng chỉ mục của chúng. Sau đây là các bước để xóa tệp / thư mục khỏi kho lưu trữ ZIP bằng cách sử dụng chỉ mục của nó.

Mẫu mã C# sau đây cho biết cách xóa một tệp trong kho lưu trữ ZIP bằng cách sử dụng chỉ mục của nó.

// Tải tệp lưu trữ ZIP
using (var archive = new Archive("Archives/archive.zip"))
{
    // Xóa tệp theo chỉ mục của nó
    archive.DeleteEntry(0);

    // Lưu kho lưu trữ đã cập nhật
    archive.Save("Archives/updated-archive.zip");
}

Nhận giấy phép API miễn phí

Bạn có thể sử dụng Aspose.ZIP cho .NET mà không có giới hạn đánh giá bằng cách nhận giấy phép tạm thời miễn phí.

Sự kết luận

Trong bài viết này, bạn đã học cách xóa tệp khỏi kho lưu trữ ZIP trong C#. Với sự trợ giúp của các mẫu mã, chúng ta đã biết cách xóa tệp bằng cách sử dụng lớp ArchiveEntry hoặc chỉ mục. Trong trường hợp bạn muốn tìm hiểu thêm về Aspose.ZIP cho .NET, bạn có thể truy cập tài liệu. Ngoài ra, bạn có thể đặt câu hỏi của mình qua diễn đàn của chúng tôi.

Xem thêm