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#.
- C# GZip API för att komprimera och dekomprimera filer
- Komprimera filer med GZip i C#
- Dekomprimera ett GZip-arkiv i C#
- Extrahera ett GZip-arkiv till Stream 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#.
- Skapa ett objekt av klassen GzipArchive.
- Använd metoden GzipArchive.SetSource(String) för att lägga till en fil i arkivet.
- Skapa GZip-arkiv med metoden GzipArchive.Save(String).
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.
- Skapa ett nytt MemoryStream objekt.
- Skapa ett objekt av klassen GzipArchive och initiera det med GZip-arkivets sökväg.
- Extrahera GZip och kopiera till minnesströmmen med metoden GZipArchive.Open().CopyTo(MemoryStream).
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.