RAR 到 ZIP C#

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 档案时进行加密和密码保护。

参见