在 C# .NET 中删除 ZIP 存档中的文件

在使用 .NET 应用程序中的档案时,您可能需要操作 ZIP 中的文件。在 previous post 中,您已经了解了如何在 ZIP 存档中添加文件/文件夹。在本文中,您将学习如何在 C# 中以编程方式删除 ZIP 存档中的文件。那么让我们开始吧。

C# .NET API 用于删除 ZIP 档案中的文件

Aspose.ZIP for .NET 是一个强大的 API,提供了广泛的归档功能。它允许您创建和操作流行格式的档案,包括 ZIP、TAR、7z 和 GZip。我们将使用此 API 动态删除 ZIP 存档中的文件。您可以从 NuGet下载 DLL 安装 API 并手动引用它。

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 的信息,可以访问 文档。此外,您可以通过我们的 论坛 提问。

也可以看看