通过 C# 进行 Zip 转换

将 ZIP 转换为各种文件存档格式

如何使用 C# 转换 Zip

使用 C# 转换 ZIP 文件可以通过 Aspose.Zip for .NET 来实现,这是一个 强大的 API ,可以简化该过程。该库使开发人员能够执行各种操作,包括提取和创建 ZIP 文件,以及密码保护和压缩级别自定义。使用Aspose.Zip提供的相关方法,开发人员可以轻松处理许多流行存档文件格式的ZIP文件转换,例如 RAR , CPIO , CAB , TAR 等。

将一个存档转换为另一个存档本质上是第一个存档的解压和第二个存档的组合的组合。您可以将临时提取的数据存储在 RAM 中,而无需将其刷新到磁盘。注意内存消耗并了解可以分配多少内存来驻留这些条目。

开发人员指南 - 存档转换

提供的代码片段演示了如何使用 C# 将 RAR 存档转换为 ZIP 格式。它利用 Aspose.Zip 库轻松提取 RAR 条目,然后在 ZIP 存档中创建相应的条目。

让我们逐步查看此示例:

  1. 实例化 ZIP 存档 准备压缩。我们将在后续步骤中填写条目。
  2. 实例化 Rar 存档 准备解压,提供存档的路径。
  3. 提取 将每个条目临时存储。
  4. 撰写 该存储中的 zip 条目。如果该条目代表一个目录,我们只需使用它的路径。
  5. 保存 将存档保存到提供的路径。

从 RAR 转换为 ZIP

提供的代码片段演示了如何使用 C# 将 RAR 存档转换为 ZIP 格式。它利用 Aspose.Zip 库轻松提取 RAR 条目,然后在 ZIP 存档中创建相应的条目。

  using (Archive zip = new Archive())
  {
    using (RarArchive rar = new RarArchive("archive.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");
  }

从 ZIP 转换为 7Z

该代码片段展示了通过 C# 将 ZIP 存档转换为 7Z 格式。利用 SevenZipArchive 库,该脚本提取 ZIP 条目并在 7Z 存档中创建相应的条目。

让我们逐步查看此示例:

1. 实例化 7z 存档 准备压缩。我们将在后续步骤中用条目填充它。
2. 实例 ZIP 存档 准备解压,提供存档路径。
3. 提取 每个条目到临时存储。
4. 撰写 该存储中的 7z 条目。
5. 保存 存档到提供的路径。

  using (SevenZipArchive sevenZipArchive =  new SevenZipArchive())
  {
    using (Archive archive = new Archive("source.zip"))
    {
      for (int i = 0; i < archive.Entries.Count; i++)
      {
        var ms = new MemoryStream();
        archive.Entries[i].Extract(ms);
        ms.Seek(0, SeekOrigin.Begin);
        sevenZipArchive.CreateEntry(archive.Entries[i].Name.Replace('\\', '/'), ms);
      }
    }

    sevenZipArchive.Save("output.7z");
  }

从 TAR.GZ 文件转换为 ZIP

这里提供的代码片段演示了通过 C# 将 TAR.GZ (GZIP) 文件转换为 ZIP 格式。 TarArchive 类具有方便的方法来操作压缩的 tarball 存档,特别是 gzipped,该脚本从 TAR.GZ 文件中提取条目并在 ZIP 存档中创建相应的条目。

using (Archive zip = new Archive())
{
  using (TarArchive archive = TarArchive.FromGZip("source.tar.gz"))
  {
  for (int i = 0; i < archive.Entries.Count; i++)
  {
    var ms = new MemoryStream();
    archive.Entries[i].Extract(ms);
    ms.Seek(0, SeekOrigin.Begin);
    zip.CreateEntry(archive.Entries[i].Name, ms);
    }
  }
  zip.Save("output.zip");
}

文档中的转换函数

Aspose.Zip .NET API 以其处理复杂存档转换的强大功能而闻名,允许以最高的效率和可靠性在各种存档格式之间进行无缝转换。通过将 ZIP 文件转换为其他流行的存档格式(反之亦然)的能力,开发人员可以确保跨不同平台和应用程序的数据完整性和最佳性能。这一重要的转换功能简化了数据传输、存储和共享的过程,实现与不同软件环境的平滑兼容。通过利用Aspose.Zip .NET API,用户可以轻松地操作存档文件并促进与所需应用程序的无缝集成,从而提高工作效率和工作流程效率。 ZIP 命名空间包含表示 zip 存档和常见存档相关实体的类。

安装 Aspose.Zip for .NET 库

如果您已使用 MSI 安装程序部署 Aspose.ZIP,请按照以下步骤完全删除该组件以及相关的演示和文档:

  1. 从“开始”菜单中,选择“设置”,然后选择“控制面板”。
  2. 单击“添加/删除程序”。
  3. 选择Aspose.ZIP。
  4. 单击“更改/删除”按钮删除 Aspose.ZIP。
    有关C#库安装的更多详细信息,请参阅 Aspose.ZIP文档

其他支持的存档文件转换

您还可以将 CAB、RAR、TAR、CPIO、TAR.BZ2、TAR.GZ、TAR.LZ、TAR.XZ、TAR.Z 文件转换为许多其他文件格式,包括下面列出的几种: