Utwórz GZip w C#

Archiwa GZip (.gz) są używane do kompresji jednego lub więcej plików przy użyciu algorytmu kompresji zip GNU. Jest powszechnie używany do kompresji plików w systemach operacyjnych UNIX. W tym artykule dowiesz się, jak programowo kompresować pliki przy użyciu GZip (.gz) w C#. Ponadto w artykule omówiono również sposób dekompresji archiwów GZip w języku C#.

Interfejs API kompresji i dekompresji C# GZip — bezpłatne pobieranie

Aby skompresować i rozpakować pliki za pomocą GZip, użyjemy Aspose.ZIP for .NET. Jest to potężny interfejs API, który umożliwia pracę z popularnymi formatami archiwów, w tym ZIP, 7z, GZip itp. Możesz pobrać interfejs API lub zainstalować go za pomocą NuGet.

PM> Install-Package Aspose.Zip

Kompresuj pliki za pomocą GZip w C#

Poniżej przedstawiono kroki kompresji plików przy użyciu narzędzia GZip w języku C#.

Poniższy przykładowy kod pokazuje, jak kompresować pliki do GZip w języku C#.

using (GzipArchive archive = new GzipArchive())
{
    // ustaw źródło
    archive.SetSource("data.bin");
    
    // utwórz archiwum
    archive.Save("archive.gz");
}

Dekompresuj archiwum GZip w C#

Poniżej przedstawiono kroki dekompresji archiwum GZip w języku C# przy użyciu Aspose.ZIP dla platformy .NET.

  • Utwórz obiekt klasy GzipArchive i zainicjuj go ścieżką archiwum GZip.
  • Utwórz plik dla wyodrębnionej zawartości za pomocą metody File.Create(String).
  • Otwórz GZip do rozpakowania przy użyciu metody GZipArchive.Open().
  • Przeczytaj wyodrębnioną zawartość i zapisz ją w pliku.

Poniższy przykładowy kod pokazuje, jak zdekompresować archiwum GZip przy użyciu języka C#.

// załaduj archiwum GZip
using (var archive = new GzipArchive("archive.gz"))
{
    // utwórz plik
    using (var extracted = File.Create("data.bin"))
    {
        // Otwórz archiwum
        var unpacked = archive.Open();
        byte[] b = new byte[8192];
        int bytesRead;
        
        // napisz do pliku
        while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

C# Wyodrębnij GZip do strumienia

Możesz także wyodrębnić archiwum GZip do obiektu strumienia pamięci. Poniżej przedstawiono kroki, aby wykonać tę operację.

Poniższy przykład kodu pokazuje, jak wyodrębnić archiwum GZip do strumienia pamięci przy użyciu języka C#.

// utworzyć strumień pamięci
var ms = new MemoryStream();

// załaduj archiwum GZip
using (GzipArchive archive = new GzipArchive(File.OpenRead("sample.gz")))
{
    // wyodrębnij i skopiuj do strumienia pamięci
    archive.Open().CopyTo(ms);
    Console.WriteLine(archive.Name);
}

Interfejs API kompresji i dekompresji GZip w języku C# — uzyskaj bezpłatną licencję

Możesz uzyskać bezpłatną tymczasową licencję, aby korzystać z API bez ograniczeń ewaluacyjnych.

Wniosek

W tym artykule nauczyłeś się kompresować lub dekompresować pliki przy użyciu GZip w języku C#. Ponadto widziałeś, jak wyodrębnić GZip, aby programowo przesyłać strumieniowo przy użyciu C# .NET. Możesz dowiedzieć się więcej o Aspose.ZIP for .NET, korzystając z dokumentacji. Ponadto możesz skontaktować się z nami, aby podzielić się swoimi pytaniami za pośrednictwem naszego forum.

Zobacz też