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 .NET per comprimere e decomprimere file utilizzando GZip
- Comprimi file usando GZip in C#
- Decomprimi un archivio GZip in C#
- Estrai un archivio GZip in Stream 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#.
- Crea un oggetto della classe GzipArchive.
- Utilizzare il metodo GzipArchive.SetSource(String) per aggiungere un file all’archivio.
- Crea un archivio GZip usando il metodo GzipArchive.Save(String).
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.
- Crea un nuovo oggetto MemoryStream.
- Crea un oggetto della classe GzipArchive e inizializzalo con il percorso dell’archivio GZip.
- Estrarre GZip e copiarlo nel flusso di memoria utilizzando il metodo GZipArchive.Open().CopyTo(MemoryStream).
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.