1. Prodotti
  2.   Compressione
  3.   .NET
  4.   SharpZipLib
 
  

Libreria C# .NET per formati di file di compressione

API .NET gratuita open source per formati di archiviazione file come ZIP, GZIP, TAR e BZIP2.

La libreria SharpZipLib è scritta interamente in C# per la piattaforma .NET. Viene implementato come un assembly e quindi puoi incorporarlo in altri progetti (in qualsiasi linguaggio .NET).

È stato originariamente portato dalla libreria GNU Classpath java.util.zip in modo che potesse essere utilizzato con SharpDevelop, che richiedeva la compressione GZIP e ZIP. Successivamente, a causa dell'elevata domanda degli utenti, nella libreria sono state incluse anche l'archiviazione BZIP2 e Tar.

Previous Next

Guida introduttiva a SharpZipLib

È necessario disporre di .NET Framework 4.5 o superiore per configurare SharpZipLib. Una volta soddisfatti i prerequisiti, puoi scaricare manualmente il repository da GitHub o recuperare direttamente l'assembly da NuGet.

Il modo consigliato per installare SharpZipLib è da NuGet poiché è disponibile come Pacchetto NuGet

Installa SharpZipLib da NuGet

 Install-Package SharpZipLib

NET Library per creare ed estrarre file ZIP

SharpZipLib consente agli sviluppatori di software di creare un file ZIP all'interno delle proprie applicazioni .NET. Gli sviluppatori possono facilmente comprimere tutti i file disponibili all'interno di una directory e assegnarli in un unico file zip. ZIP è uno dei formati di file di compressione più popolari e offre agli utenti la possibilità di ridurre le dimensioni dei file. L'API supporta anche l'estrazione del contenuto dei file ZIP in un luogo a scelta dell'utente

Estrai file da ZIP - C#

// Open zip file
using (Stream fsInput = File.OpenRead("D:\\input.zip"))
using (var zf = new ZipFile(fsInput))
{
  // Set password if required
  zf.Password = "12345";
  // Unzip data
  foreach (ZipEntry zipEntry in zf)
  {
    if (!zipEntry.IsFile)
    {
      // Ignore directories
      continue;
    }
    String entryFileName = zipEntry.Name;
    var directoryName = "D:\\output\\test";
    if (directoryName.Length > 0)
    {
      Directory.CreateDirectory(directoryName);
    }
    var buffer = new byte[4096];
    using (var zipStream = zf.GetInputStream(zipEntry))
    using (Stream fsOutput = File.Create("data.zip"))
    {
      StreamUtils.Copy(zipStream, fsOutput, buffer);
    }
  }
}

Crea un file ZIP protetto da password

SharpZipLib offre agli sviluppatori di software la possibilità di comprimere tutti i file all'interno di una cartella in un file ZIP e definire una password per i file creati. Se vuoi creare file ZIP senza protezione, imposta il suo valore su null o non dichiararlo per lasciare il file senza alcuna protezione con password. Supporta un gran numero di file.

Crea un file ZIP protetto da password - C#

// Create a new ZIP file 
using (FileStream fsOut = File.Create("D:\\output.zip"))
using (var zipStream = new ZipOutputStream(fsOut))
{
  //0-9, 9 being the highest level of compression
  zipStream.SetLevel(3);
  // Set password
  zipStream.Password = "12345";
  // Add files
  var files = Directory.GetFiles("D:\\sample");
  foreach (var filename in files)
  {
    var fi = new FileInfo(filename);
    // Make the name in zip based on the folder
    var entryName = filename.Substring(1);
    // Remove drive from name and fixe slash direction
    entryName = ZipEntry.CleanName(entryName);
    var newEntry = new ZipEntry(entryName);
    // Note the zip format stores 2 second granularity
    newEntry.DateTime = fi.LastWriteTime;
    newEntry.Size = fi.Length;
    zipStream.PutNextEntry(newEntry);
    var buffer = new byte[4096];
    using (FileStream fsInput = File.OpenRead(filename))
    {
      StreamUtils.Copy(fsInput, zipStream, buffer);
    }
    zipStream.CloseEntry();
  }
}
 Italiano