在您的 .NET 應用程序中處理存檔時,您可能需要操作 ZIP 中的文件。在 上一篇文章 中,您了解瞭如何在 ZIP 存檔中添加文件/文件夾。在本文中,您將學習如何在 C# 中以編程方式刪除 ZIP 存檔中的文件。讓我們開始吧。
C# .NET API 刪除 ZIP 檔案中的文件
Aspose.ZIP for .NET 是一個功能強大的 API,可提供廣泛的歸檔功能。它允許您創建和操作流行格式的檔案,包括 ZIP、TAR、7z 和 GZip。我們將使用此 API 動態刪除 ZIP 壓縮包中的文件。您可以從 NuGet 安裝 API 或 下載 DLL 並手動引用它。
PM> Install-Package Aspose.Zip
在 C# 中刪除 ZIP 存檔中的文件
有兩種方法可以使用 Aspose.ZIP for .NET 刪除 ZIP 存檔中的文件。一個使用文件的索引,而另一個使用 ArchiveEntry 類。讓我們看看如何使用上述兩種方法。
使用 ArchiveEntry 刪除 ZIP 文件
Aspose.ZIP for .NET 將 ZIP 中的每個文件/文件夾表示為一個 ArchiveEntry 對象,所有文件和文件夾構成一個 ArchiveEntry 對象的集合。因此,要從 ZIP 中刪除文件,您可以從集合中訪問和刪除相關的 ArchiveEntry 對象。以下是使用 C# 從 ZIP 存檔中刪除文件的步驟。
- 使用 Archive 類加載 ZIP 存檔。
- 循環遍歷 Archive.Entries 集合中的條目。
- 過濾所需的文件/文件夾並將它們添加到列表中。
- 使用 Archive.DeleteEntry(ArchvieEntry) 方法刪除列表中的每個條目。
- 使用 Archive.Save(string) 方法保存更新後的 ZIP 存檔。
以下代碼示例顯示瞭如何使用 C# 刪除 ZIP 存檔內的文件。
// 加載 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 存檔中刪除文件/文件夾的步驟。
- 使用 Archive 類加載 ZIP 存檔。
- 通過在 Archive.DeleteEntry(int) 方法中指定索引來刪除文件。
- 使用 Archive.Save(string) 方法保存更新的 ZIP 存檔。
以下 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。
結論
在本文中,您學習瞭如何使用 C# 從 ZIP 存檔中刪除文件。借助代碼示例,我們了解瞭如何使用 ArchiveEntry 類或索引刪除文件。如果您想了解更多關於 Aspose.ZIP for .NET 的信息,您可以訪問 文檔。此外,您可以通過我們的 論壇 提問。