在 C# 中创建 GZip

GZip 档案 (.gz) 用于使用 GNU zip 压缩算法压缩一个或多个文件。它通常用于 UNIX 操作系统中的文件压缩。在本文中,您将学习如何在 C# 中以编程方式使用 GZip (.gz) 压缩文件。此外,本文还将介绍如何在 C# 中解压缩 GZip 档案。

C# GZip 压缩和解压 API - 免费下载

要使用 GZip 压缩和解压缩文件,我们将使用 Aspose.ZIP for .NET。它是一个强大的 API,可让您使用流行的存档格式,包括 ZIP7z、GZip 等。您可以 下载 API 或使用 [NuGet] 安装它8

PM> Install-Package Aspose.Zip

在 C# 中使用 GZip 压缩文件

以下是在 C# 中使用 GZip 压缩文件的步骤。

以下代码示例展示了如何在 C# 中将文件压缩为 GZip。

using (GzipArchive archive = new GzipArchive())
{
    // 设置源
    archive.SetSource("data.bin");
    
    // 创建存档
    archive.Save("archive.gz");
}

在 C# 中解压缩 GZip 存档

以下是使用 Aspose.ZIP for .NET 在 C# 中解压缩 GZip 存档的步骤。

  • 创建 GzipArchive 类的对象并使用 GZip 存档的路径对其进行初始化。
  • 使用 File.Create(String) 方法为提取的内容创建一个文件。
  • 使用 GZipArchive.Open() 方法打开 GZip 进行提取。
  • 读取提取的内容并将其写入文件。

以下代码示例显示了如何使用 C# 解压缩 GZip 存档。

// 加载 GZip 存档
using (var archive = new GzipArchive("archive.gz"))
{
    // 创建文件
    using (var extracted = File.Create("data.bin"))
    {
        // 打开档案
        var unpacked = archive.Open();
        byte[] b = new byte[8192];
        int bytesRead;
        
        // 写入文件
        while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

C# 将 GZip 提取到流中

您还可以将 GZip 存档提取到内存流对象中。以下是执行此操作的步骤。

以下代码示例展示了如何使用 C# 将 GZip 存档提取到内存流中。

// 创建内存流
var ms = new MemoryStream();

// 加载 GZip 存档
using (GzipArchive archive = new GzipArchive(File.OpenRead("sample.gz")))
{
    // 提取并复制到内存流
    archive.Open().CopyTo(ms);
    Console.WriteLine(archive.Name);
}

C# GZip 压缩和解压 API - 获取免费许可证

您可以 获得免费的临时许可证 以便在没有评估限制的情况下使用 API。

结论

在本文中,您学习了如何在 C# 中使用 GZip 压缩或解压缩文件。此外,您还了解了如何使用 C# .NET 以编程方式提取 GZip 以进行流式传输。您可以使用 documentation 探索更多关于 Aspose.ZIP for .NET 的信息。此外,您可以通过我们的 论坛 与我们联系以分享您的疑问。

也可以看看