![Xóa tệp trong kho lưu trữ ZIP trong C# .NET](images/Delete-Files-in-ZIP-Archive.jpg#center)
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#.
- Tải tệp lưu trữ ZIP bằng lớp Lưu trữ.
- Lặp lại các mục trong bộ sưu tập Archive.Entries.
- Lọc các tệp / thư mục mong muốn và thêm chúng vào danh sách.
- Xóa từng mục nhập trong danh sách bằng phương pháp Archive.DeleteEntry (ArchvieEntry).
- Lưu kho lưu trữ ZIP đã cập nhật bằng phương thức Archive.Save (string).
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ó.
- Tải tệp lưu trữ ZIP bằng lớp Lưu trữ.
- Xóa tệp bằng cách chỉ định chỉ mục trong phương thức Archive.DeleteEntry (int).
- Lưu kho lưu trữ ZIP đã cập nhật bằng phương thức Archive.Save (string).
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.