在 C# .NET 中刪除 ZIP 存檔中的文件

在您的 .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 存檔中刪除文件的步驟。

以下代碼示例顯示瞭如何使用 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 存檔中刪除文件/文件夾的步驟。

以下 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 的信息,您可以訪問 文檔。此外,您可以通過我們的 論壇 提問。

也可以看看