将 RAR 文件转换为 ZIP 格式是处理压缩档案时的常见要求。ZIP 在各种平台上都得到广泛支持,使其成为共享和存储的更通用的选择。在这篇博文中,我们将介绍一种使用 C# 将 RAR 档案转换为 ZIP 格式的解决方案。
为什么要将 RAR 转换为 ZIP?
将 RAR 文件转换为 ZIP 有几个原因:
跨平台兼容性:与 RAR 相比,ZIP 在更多系统和平台上受支持。
本机支持:许多操作系统(如 Windows 和 macOS)可以本机提取 ZIP 文件,而无需第三方软件。
压缩效率:ZIP 压缩效率高,在文件大小和速度之间取得平衡。
现在,让我们继续安装、分步指南和代码示例。
RAR 到 ZIP 存档转换器 - C# API 配置
您可以通过在 NuGet 包管理器控制台中使用以下安装命令安装 Conholdate.Total for .NET 来转换压缩存档格式:
PM> NuGet\Install-Package Conholdate.Total
在 C# 中将 RAR 转换为 ZIP
为了实现这一点,我们将使用 Aspose.Zip 库,它是 Conholdate.Total for .NET 套件的一部分。下面是将 RAR 文件转换为 ZIP 文件的分步说明:
- 初始化 ZIP 档案:我们首先创建一个代表 ZIP 文件的新 Aspose.Zip.Archive 对象。
- 打开并提取 RAR 文件:使用 Aspose.Zip.Rar.RarArchive 加载 RAR 文件并提取每个条目。RAR 档案中的文件和目录将单独处理。
- 将条目添加到 ZIP 存档:对于 RAR 文件中的每个条目(文件或目录),我们将其添加到 ZIP 存档。文件被写入 ZIP 条目,而目录则被创建为空条目。
- 保存 ZIP 文件:添加所有条目后,将 ZIP 档案保存到所需的输出位置。
以下代码片段显示如何在 C# 中将 RAR 转换为 ZIP:
using (Aspose.Zip.Archive zip = new Aspose.Zip.Archive())
{
using (Aspose.Zip.Rar.RarArchive rar = new Aspose.Zip.Rar.RarArchive("archvie.rar"))
{
for (int i = 0; i < rar.Entries.Count; i++)
{
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.Save("output.zip");
}
免费评估许可证
您可以获得 免费临时许可证 来尝试此功能以及许多其他功能,以操作或转换您环境中的压缩存档文件。
结论
使用 C# 将 RAR 文件转换为 ZIP 文件只需要几个方法调用,无需担心压缩文件格式的细节或结构。按照这种方法,您可以轻松地从 RAR 存档中提取文件并将其压缩为 ZIP 格式。它可确保您的文件在不同平台上更兼容且更易于访问。然而,如果您想讨论任何疑问,请在 forum 上写信给我们。
常见问题解答
转换期间目录结构是否保留?
是的,在向 ZIP 存档添加条目时,代码会保留 RAR 文件中的目录结构。
我需要第三方软件来提取 ZIP 文件吗?
不是,ZIP 文件可以在大多数平台上本地提取,包括 Windows 和 macOS。
我可以用密码保护 ZIP 文件吗?
是的,Aspose.ZIP 允许在创建 ZIP 档案时进行加密和密码保护。