Crea GZip in C#

Gli archivi GZip (.gz) vengono utilizzati per comprimere uno o più file utilizzando l’algoritmo di compressione zip GNU. È comunemente usato per la compressione dei file nei sistemi operativi UNIX. In questo articolo imparerai come comprimere i file usando GZip (.gz) a livello di codice in C#. Inoltre, l’articolo tratterà anche come decomprimere gli archivi GZip in C#.

API C# per comprimere e decomprimere file utilizzando GZip

Per comprimere e decomprimere i file usando GZip, useremo Aspose.ZIP for .NET. È una potente API che ti consente di lavorare con i formati di archivio più diffusi, inclusi ZIP, 7z, GZip, ecc. Puoi scaricare l’API o installarla utilizzando NuGet.

PM> Install-Package Aspose.Zip

Comprimi file usando GZip in C#

Di seguito sono riportati i passaggi per comprimere i file utilizzando GZip in C#.

L’esempio di codice seguente mostra come comprimere i file in GZip in C#.

using (GzipArchive archive = new GzipArchive())
{
    // imposta la fonte
    archive.SetSource("data.bin");
    
    // creare archivio
    archive.Save("archive.gz");
}

Decomprimi un archivio GZip in C#

Di seguito sono riportati i passaggi per decomprimere un archivio GZip in C# usando Aspose.ZIP per .NET.

  • Crea un oggetto della classe GzipArchive e inizializzalo con il percorso dell’archivio GZip.
  • Crea un file per il contenuto estratto usando il metodo File.Create(String).
  • Apri GZip per l’estrazione usando il metodo GZipArchive.Open().
  • Leggi il contenuto estratto e scrivilo nel file.

L’esempio di codice seguente mostra come decomprimere un archivio GZip usando C#.

// carica l'archivio GZip
using (var archive = new GzipArchive("archive.gz"))
{
    // creare un file
    using (var extracted = File.Create("data.bin"))
    {
        // aprire archivio
        var unpacked = archive.Open();
        byte[] b = new byte[8192];
        int bytesRead;
        
        // scrivi su file
        while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Estrai un archivio GZip in Stream in C#

Puoi anche estrarre un archivio GZip in un oggetto flusso di memoria. Di seguito sono riportati i passaggi per eseguire questa operazione.

L’esempio di codice seguente mostra come estrarre un archivio GZip in un flusso di memoria usando C#.

// creare un flusso di memoria
var ms = new MemoryStream();

// carica l'archivio GZip
using (GzipArchive archive = new GzipArchive(File.OpenRead("sample.gz")))
{
    // estrarre e copiare nel flusso di memoria
    archive.Open().CopyTo(ms);
    Console.WriteLine(archive.Name);
}

Ottieni una licenza API gratuita

Puoi ottenere una licenza temporanea gratuita per utilizzare l’API senza limitazioni di valutazione.

Conclusione

In questo articolo, hai imparato come comprimere o decomprimere file usando GZip in C#. Inoltre, hai visto come estrarre un GZip per lo streaming a livello di codice. Puoi esplorare di più su Aspose.ZIP per .NET usando documentazione. Inoltre, puoi contattarci per condividere le tue domande tramite il nostro forum.

Guarda anche