在使用 .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 存档中删除文件的步骤。
- 使用 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 的信息,可以访问 文档。此外,您可以通过我们的 论坛 提问。