RAR 是一种常用的存档文件格式,支持数据的无损压缩。通常,人们更喜欢 RAR 而不是 ZIP,因为它提供了更好的压缩率并保持存档大小更小。但是,在某些情况下,您可能需要将 RAR 文件转换为 ZIP 档案。为此,本文介绍了如何在 C# 中以编程方式将 RAR 文件转换为 ZIP。
用于 RAR 到 ZIP 转换的 C# .NET API
Aspose.ZIP for .NET 是一个强大的归档 API,支持创建和操作流行的归档格式。我们将利用此 API 将 RAR 文件转换为 ZIP 格式。要使用 API,您可以从 NuGet 安装它或从 下载部分 下载其 DLL。
PM> Install-Package Aspose.Zip
在 C# 中将 RAR 文件转换为 ZIP
使用 Aspose.ZIP for .NET,RAR 文件可以在几个步骤内转换为 ZIP 格式。以下是将 RAR 文件转换为 C# 中的 ZIP 存档的步骤。
为 ZIP 存档创建 Archive 类的实例。
使用 RarArchive 类加载 RAR 存档。
使用 RarArchive.Entries 集合循环遍历 RAR 存档的条目。
对于 RAR 中的每个条目,执行以下步骤:
使用 RarArchive.Entries[int].Extract(MemoryStream) 方法将条目提取到 MemoryStream 对象。
使用 Archive.CreateEntry(String, MemoryStream) 方法将条目添加到 ZIP。
最后,使用 Archive.Save(String) 方法保存生成的 ZIP 存档。
以下代码示例展示了如何在 C# 中将 RAR 文件转换为 ZIP 格式。
// 为 ZIP 存档创建存档类的实例
using (Archive zip = new Archive())
{
// 加载 RAR 存档
using (RarArchive rar = new RarArchive(@"D:\archvie.rar"))
{
// 循环遍历 RAR 文件的条目
for (int i = 0; i < rar.Entries.Count; i++)
{
// 将每个条目从 RAR 复制到 ZIP
if (!rar.Entries[i].IsDirectory)
{
var ms = new MemoryStream();
rar.Entries[i].Extract(ms);
ms.Seek(0, SeekOrigin.Begin);
zip.CreateEntry(rar.Entries[i].Name, ms);
}
else
zip.CreateEntry(rar.Entries[i].Name + "/", Stream.Null);
}
}
// 保存生成的 ZIP 存档
zip.Save("output.zip");
}
获取免费 API 许可证
您可以获得 免费的临时许可证 以使用 Aspose.ZIP for .NET,而不受评估限制。
结论
在本文中,您学习了如何在 C# 中以编程方式将 RAR 存档转换为 ZIP 格式。分步指南和代码示例演示了通过几个步骤将 RAR 文件转换为 ZIP 存档。您可以阅读 Aspose.ZIP for .NET 的 文档 以探索其他功能。此外,您可以通过我们的 论坛 与我们分享您的疑问。