Tạo GZip trong C#

GZip tệp nén (.gz) được sử dụng để nén một hoặc nhiều tệp bằng thuật toán nén GNU zip. Nó thường được sử dụng để nén tệp trong hệ điều hành UNIX. Trong bài viết này, bạn sẽ học cách nén tệp bằng GZip (.gz) theo lập trình trong C#. Hơn nữa, bài viết cũng sẽ đề cập đến cách giải nén kho lưu trữ GZip trong C#.

API nén và giải nén C# GZip - Tải xuống miễn phí

Để nén và giải nén tệp bằng GZip, chúng tôi sẽ sử dụng Aspose.ZIP cho .NET. Đây là một API mạnh mẽ cho phép bạn làm việc với các định dạng lưu trữ phổ biến bao gồm ZIP, 7z, GZip, v.v. Bạn có thể tải xuống API hoặc cài đặt nó bằng [NuGet] [số 8].

PM> Install-Package Aspose.Zip

Nén tệp bằng GZip trong C#

Sau đây là các bước để nén tệp bằng GZip trong C#.

Mẫu mã sau đây cho thấy cách nén tệp thành GZip trong C#.

using (GzipArchive archive = new GzipArchive())
{
    // thiết lập nguồn
    archive.SetSource("data.bin");
    
    // tạo kho lưu trữ
    archive.Save("archive.gz");
}

Giải nén kho lưu trữ GZip trong C#

Sau đây là các bước để giải nén một kho lưu trữ GZip trong C# bằng Aspose.ZIP cho .NET.

  • Tạo một đối tượng của lớp GzipArchive và khởi tạo nó bằng đường dẫn của kho lưu trữ GZip.
  • Tạo tệp cho nội dung đã trích xuất bằng phương pháp File.Create (String).
  • Mở GZip để trích xuất bằng phương pháp GZipArchive.Open().
  • Đọc nội dung đã trích xuất và ghi vào tệp.

Mẫu mã sau đây cho thấy cách giải nén kho lưu trữ GZip bằng C#.

// tải kho lưu trữ GZip
using (var archive = new GzipArchive("archive.gz"))
{
    // tạo một tập tin
    using (var extracted = File.Create("data.bin"))
    {
        // mở kho lưu trữ
        var unpacked = archive.Open();
        byte[] b = new byte[8192];
        int bytesRead;
        
        // ghi vào tập tin
        while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

C# Trích xuất GZip vào Luồng

Bạn cũng có thể giải nén kho lưu trữ GZip vào một đối tượng dòng bộ nhớ. Sau đây là các bước để thực hiện thao tác này.

Mẫu mã sau đây cho thấy cách trích xuất kho lưu trữ GZip vào luồng bộ nhớ bằng C#.

// tạo một dòng ký ức
var ms = new MemoryStream();

// tải kho lưu trữ GZip
using (GzipArchive archive = new GzipArchive(File.OpenRead("sample.gz")))
{
    // trích xuất và sao chép vào luồng bộ nhớ
    archive.Open().CopyTo(ms);
    Console.WriteLine(archive.Name);
}

API nén và giải nén C# GZip - Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để sử dụng API mà không có giới hạn đánh giá.

Sự kết luận

Trong bài viết này, bạn đã học cách nén hoặc giải nén tệp bằng GZip trong C#. Hơn nữa, bạn đã thấy cách giải nén GZip để phát trực tuyến theo chương trình bằng C# .NET. Bạn có thể khám phá thêm về Aspose.ZIP cho .NET bằng tài liệu. Ngoài ra, bạn có thể liên hệ với chúng tôi để chia sẻ các thắc mắc của mình qua diễn đàn của chúng tôi.

Xem thêm