彩票走势图

想要以编程方式在C#中创建和提取GZip存档吗?Aspose.ZIP帮你轻松搞定

翻译|使用教程|编辑:李显亮|2021-05-11 11:00:23.333|阅读 269 次

概述:GZip存档(.gz)用于使用GNU zip压缩算法压缩一个或多个文件。它通常用于UNIX操作系统中的文件压缩。在本文中,将学习如何使用C#以编程方式压缩文件和创建GZip(.gz)存档。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

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

  • 在C#中创建GZip存档
  • 在C#中提取GZip存档
  • 将GZip存档提取到C#流中

要将文件压缩到GZip存档中,我们将使用Aspose.ZIP for .NET。它是一个功能强大的API,可让您使用流行的存档格式,包括ZIP,7z,GZip等。如果你还没有用过Aspose.Zip,可以点击这里下载最新版测试。

在C#中创建GZip存档

以下是使用C#将文件压缩到GZip存档中的步骤。

  • 创建一个GzipArchive类的对象。
  • 使用GzipArchive.SetSource(String)方法将文件添加到存档。
  • 使用GzipArchive.Save(String)方法创建GZip存档。

以下代码示例显示了如何使用C#创建GZip存档。

using (GzipArchive archive = new GzipArchive())
{
    // set source
    archive.SetSource("data.bin");
    
    // create archive
    archive.Save("archive.gz");
}

在C#中提取GZip存档

以下是使用Aspose.ZIP for .NET提取GZip存档的步骤。

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

以下代码示例显示了如何使用C#提取GZip存档。

// load the GZip archive
using (var archive = new GzipArchive("archive.gz"))
{
    // create a file
    using (var extracted = File.Create("data.bin"))
    {
        // open archive
        var unpacked = archive.Open();
        byte[] b = new byte[8192];
        int bytesRead;
        
        // write to file
        while (0 < (bytesRead = unpacked.Read(b, 0, b.Length))) extracted.Write(b, 0, bytesRead); } }

将GZip存档提取到C#流中

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

  • 创建一个新的MemoryStream对象。
  • 创建一个GzipArchive类的对象,并使用GZip存档的路径对其进行初始化。
  • 提取GZip并使用GZipArchive.Open()。CopyTo(MemoryStream)方法复制到内存流。

下面的代码示例演示如何使用C#将GZip存档提取到内存流中。

// create a memory stream
var ms = new MemoryStream();

// load GZip archive
using (GzipArchive archive = new GzipArchive(File.OpenRead("sample.gz")))
{
    // extract and copy to memory stream
    archive.Open().CopyTo(ms);
    Console.WriteLine(archive.Name);
}

如果你想试用Aspose的全部完整功能,可联系在线客服获取30天临时授权体验。


如果您有任何疑问或需求,请随时加入Aspose技术交流群(761297826),我们很高兴为您提供查询和咨询


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP