สร้าง GZip ใน C#

ไฟล์เก็บถาวร GZip (.gz) ใช้เพื่อบีบอัดไฟล์ตั้งแต่หนึ่งไฟล์ขึ้นไปโดยใช้อัลกอริทึมการบีบอัด GNU zip โดยทั่วไปจะใช้สำหรับการบีบอัดไฟล์ในระบบปฏิบัติการ UNIX ในบทความนี้ คุณจะได้เรียนรู้วิธีบีบอัดไฟล์โดยใช้ GZip (.gz) แบบเป็นโปรแกรมใน C# นอกจากนี้ บทความนี้ยังกล่าวถึงวิธีการคลายไฟล์เก็บถาวร GZip ใน C#

C# GZip Compression และ Decompression API - ดาวน์โหลดฟรี

ในการบีบอัดและคลายไฟล์โดยใช้ GZip เราจะใช้ Aspose.ZIP for .NET เป็น API อันทรงพลังที่ให้คุณทำงานกับรูปแบบไฟล์เก็บถาวรยอดนิยม เช่น ZIP, 7z, GZip ฯลฯ คุณสามารถ ดาวน์โหลด API หรือติดตั้งโดยใช้ NuGet.

PM> Install-Package Aspose.Zip

บีบอัดไฟล์โดยใช้ GZip ใน C#

ต่อไปนี้เป็นขั้นตอนในการบีบอัดไฟล์โดยใช้ GZip ใน C#

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีบีบอัดไฟล์เป็น GZip ใน C#

using (GzipArchive archive = new GzipArchive())
{
    // กำหนดแหล่งที่มา
    archive.SetSource("data.bin");
    
    // สร้างไฟล์เก็บถาวร
    archive.Save("archive.gz");
}

คลายไฟล์เก็บถาวร GZip ใน C

ต่อไปนี้เป็นขั้นตอนในการคลายไฟล์เก็บถาวร GZip ใน C# โดยใช้ Aspose.ZIP for .NET

  • สร้างวัตถุของคลาส GzipArchive และเริ่มต้นด้วยเส้นทางของไฟล์เก็บถาวร GZip
  • สร้างไฟล์สำหรับเนื้อหาที่แยกออกมาโดยใช้เมธอด File.Create(String)
  • เปิด GZip เพื่อแตกไฟล์โดยใช้เมธอด GZipArchive.Open()
  • อ่านเนื้อหาที่แยกออกมาแล้วเขียนลงในไฟล์

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีคลายไฟล์เก็บถาวร GZip โดยใช้ C#

// โหลดไฟล์เก็บถาวร 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 ลงในออบเจกต์สตรีมหน่วยความจำ ต่อไปนี้เป็นขั้นตอนในการดำเนินการนี้

  • สร้างวัตถุ MemoryStream ใหม่
  • สร้างวัตถุของคลาส GzipArchive และเริ่มต้นด้วยเส้นทางของไฟล์เก็บถาวร GZip
  • แยก GZip และคัดลอกไปยังสตรีมหน่วยความจำโดยใช้เมธอด GZipArchive.Open().CopyTo(MemoryStream)

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกไฟล์เก็บถาวร GZip ลงในสตรีมหน่วยความจำโดยใช้ C#

// สร้างสตรีมหน่วยความจำ
var ms = new MemoryStream();

// โหลดไฟล์เก็บถาวร GZip
using (GzipArchive archive = new GzipArchive(File.OpenRead("sample.gz")))
{
    // แยกและคัดลอกไปยังสตรีมหน่วยความจำ
    archive.Open().CopyTo(ms);
    Console.WriteLine(archive.Name);
}

C# GZip Compression และ Decompression API - รับใบอนุญาตฟรี

คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี เพื่อใช้ API โดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีบีบอัดหรือคลายไฟล์โดยใช้ GZip ใน C# นอกจากนี้ คุณได้เห็นวิธีแยก GZip เพื่อสตรีมแบบเป็นโปรแกรมโดยใช้ C# .NET คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ Aspose.ZIP for .NET โดยใช้ เอกสารประกอบ นอกจากนี้ คุณสามารถติดต่อเราเพื่อแบ่งปันข้อสงสัยของคุณผ่าน ฟอรัม

ดูสิ่งนี้ด้วย