Skapa GZip i C#

GZip-arkiv (.gz) används för att komprimera en eller flera filer med hjälp av GNUs zip-komprimeringsalgoritm. Det används vanligtvis för filkomprimering i UNIX-operativsystem. I den här artikeln kommer du att lära dig hur du komprimerar filer med GZip i C#. Dessutom kommer artikeln också att täcka hur man dekomprimerar GZip-arkiv i C#.

Komprimera filer med GZip i C# - API-installation

För att komprimera och dekomprimera filer med GZip kommer vi att använda Aspose.ZIP för .NET. Det är ett kraftfullt API som låter dig arbeta med populära arkivformat inklusive ZIP, 7z, GZip, etc. Du kan antingen ladda ner API eller installera det med NuGet.

PM> Install-Package Aspose.Zip

GZip-filkomprimering i C#

Följande är stegen för att komprimera filer med GZip i C#.

Följande kodexempel visar hur man komprimerar filer till GZip i C#.

using (GzipArchive archive = new GzipArchive())
{
    // ställ in källa
    archive.SetSource("data.bin");
    
    // skapa arkiv
    archive.Save("archive.gz");
}

Dekomprimera en GZip i C#

Följande är stegen för att dekomprimera ett GZip-arkiv i C#.

  • Skapa ett objekt av klassen GzipArchive och initiera det med GZip-arkivets sökväg.
  • Skapa en fil för extraherat innehåll med metoden File.Create(String).
  • Öppna GZip för extrahering med metoden GZipArchive.Open().
  • Läs det extraherade innehållet och skriv det till filen.

Följande kodexempel visar hur man dekomprimerar ett GZip-arkiv i C#.

// ladda GZip-arkivet
using (var archive = new GzipArchive("archive.gz"))
{
    // skapa en fil
    using (var extracted = File.Create("data.bin"))
    {
        // öppet arkiv
        var unpacked = archive.Open();
        byte[] b = new byte[8192];
        int bytesRead;
        
        // skriva till filen
        while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Extrahera en GZip till Stream i C#

Du kan också extrahera ett GZip-arkiv till ett minnesströmobjekt. Följande är stegen för att utföra denna operation.

Följande kodexempel visar hur man extraherar ett GZip-arkiv till en minnesström med C#.

// skapa en minnesström
var ms = new MemoryStream();

// ladda GZip-arkiv
using (GzipArchive archive = new GzipArchive(File.OpenRead("sample.gz")))
{
    // extrahera och kopiera till minnesström
    archive.Open().CopyTo(ms);
    Console.WriteLine(archive.Name);
}

Komprimera och dekomprimera GZip-filer - Skaffa en gratis licens

Du kan få en gratis tillfällig licens för att komprimera eller dekomprimera GZip-arkiv utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har du lärt dig hur du komprimerar eller dekomprimerar filer med GZip i C#. Dessutom har du sett hur man extraherar en GZip för att strömma programmatiskt med C# .NET. Du kan utforska mer om Aspose.ZIP för .NET med hjälp av dokumentation. Dessutom kan du kontakta oss för att dela dina frågor via vårt forum.

Se även