ZIP 转 TGZ C#

在这篇博文中,我们将探讨如何使用 C# 将 ZIP 文件转换为 TGZ(tar.gz) 格式。将 ZIP 转换为 TGZ 是一项常见任务,尤其是在处理类 Unix 系统的压缩文件时。以下教程包括分步说明和入门所需的代码。

为什么要将 ZIP 转换为 TGZ?

您可能需要将 ZIP 转换为 TGZ 格式,原因如下:

  • 跨平台兼容性:TGZ 文件通常用于基于 Unix 的系统(Linux、macOS),而 ZIP 文件则在 Windows 上很流行。将 ZIP 转换为 TGZ 可以更轻松地在不同环境中处理压缩文件。

  • 压缩优势:与 ZIP 相比,TGZ 文件通常提供更好的压缩比,从而节省存储空间并减少传输时间。

  • 自动化任务:在 C# 中,自动化文件格式转换可以节省时间和精力,特别是在处理大量数据的应用程序中。

ZIP 到 TGZ 转换器 - C# API 配置

您可以通过在 Visual Studio IDE 中运行以下 NuGet 命令安装 Conholdate.Total for .NET 将 ZIP 转换为 TGZ:

PM> NuGet\Install-Package Conholdate.Total

在 C# 中将 ZIP 转换为 TGZ

以下步骤显示如何在 C# 中将 ZIP 转换为 TGZ:

  • 加载 ZIP 文件:Archive 类加载包含要转换为 TGZ 格式的条目的源 ZIP 文件。

  • 创建 TarArchive:我们创建一个 TarArchive 对象来开始准备 TGZ 文件的内容。

  • 处理条目:迭代 ZIP 文件中的每个条目。如果它不是目录,我们会将其数据提取到 MemoryStream 中。

  • 向 TarArchive 添加条目:对于每个有效条目,CreateEntry 方法用于将文件连同存储在内存中的数据一起添加到 tarball。

  • 保存为 TGZ:调用 SaveGzipped 方法压缩并将 tarball 保存为 .tar.gz 文件。

以下代码片段展示了 C# 中 ZIP 到 TGZ 的转换:

using (Archive source = new Archive("source.zip"))
{
    using (Aspose.Zip.Tar.TarArchive tar = new Aspose.Zip.Tar.TarArchive())
    {
        foreach (ArchiveEntry entry in source.Entries)
        {
            if (!entry.IsDirectory)
            {
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);
                tar.CreateEntry(entry.Name, mem);
            }
        }

        tar.SaveGzipped("result.tar.gz");
    }
}

免费评估许可证

您可以申请 免费临时许可证 来测试 ZIP 转换,且在您的环境中不受任何评估限制。

结论

使用 C# 将 ZIP 转换为 TGZ 是处理压缩档案的简单过程。无论您是处理跨平台文件共享还是优化文件大小,此转换过程都非常有益。通过遵循提供的代码示例,您可以在 .NET 应用程序中自动将 ZIP 转换为 TGZ,从而确保管理压缩文件的兼容性和效率。如果您有任何问题,请在 forum 写信给我们。

常见问题解答

TGZ 格式在 Windows 上支持吗?

是的,虽然它在基于 Unix 的系统上更常见,但 TGZ 文件也可以在 Windows 上提取和创建。

我可以将目录包含在 TGZ 档案中吗?

是的,可以通过删除 !entry.IsDirectory 检查并相应地处理目录来修改代码以包含目录。

是否可以自动将 ZIP 转换为 TGZ?

是的,提供的代码可以集成到更大的 C# 应用程序中,从而允许在批处理或计划任务中进行自动转换。

参见