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#.
- C# GZip API để nén và giải nén tệp
- Nén tệp bằng GZip trong C#
- Giải nén kho lưu trữ GZip trong C#
- Giải nén Kho lưu trữ GZip vào Luồng 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#.
- Tạo một đối tượng của lớp GzipArchive.
- Sử dụng phương thức GzipArchive.SetSource (String) để thêm tệp vào lưu trữ.
- Tạo kho lưu trữ GZip bằng phương thức GzipArchive.Save (String).
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.
- Tạo một đối tượng MemoryStream mới.
- 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.
- Giải nén GZip và sao chép vào luồng bộ nhớ bằng phương pháp GZipArchive.Open(). CopyTo (MemoryStream).
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.