1. Produse
  2.   Comprimare
  3.   .NET
  4.   SharpZipLib
 
  

Biblioteca C# .NET pentru formate de fișiere de compresie

API .NET gratuit cu sursă deschisă pentru formate de arhivare de fișiere precum ZIP, GZIP, TAR și BZIP2.

Biblioteca SharpZipLib este scrisă în întregime în C# pentru platforma .NET. Este implementat ca un ansamblu și astfel îl puteți încorpora în alte proiecte (în orice limbaj .NET).

A fost portat inițial din biblioteca GNU Classpath java.util.zip, astfel încât să poată fi utilizat cu SharpDevelop, care avea nevoie de compresie GZIP și ZIP. Ulterior, din cauza cererii mari a utilizatorilor, arhivarea BZIP2 și tar au fost incluse și în bibliotecă.

Previous Next

Noțiuni introductive cu SharpZipLib

Trebuie să aveți .NET Framework 4.5 sau o versiune superioară pentru a configura SharpZipLib. Odată ce îndepliniți cerințele preliminare, puteți descărca manual depozitul de pe GitHub sau preluați direct ansamblul din NuGet.

Modul recomandat de a instala SharpZipLib este de la NuGet, deoarece este disponibil ca Pachet NuGet

Instalați SharpZipLib din NuGet

 Install-Package SharpZipLib

Biblioteca NET pentru a crea și extrage fișiere ZIP

SharpZipLib permite dezvoltatorilor de software să creeze un fișier ZIP în propriile aplicații .NET. Dezvoltatorii pot comprima cu ușurință toate fișierele disponibile într-un director și le pot atribui într-un singur fișier zip. ZIP este unul dintre cele mai populare formate de fișiere de compresie și oferă utilizatorilor posibilitatea de a reduce dimensiunea fișierelor. API-ul acceptă, de asemenea, extragerea conținutului fișierelor ZIP într-un loc la alegerea utilizatorului

Extrageți fișiere din 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ți un fișier ZIP protejat cu parolă

SharpZipLib oferă dezvoltatorilor de software posibilitatea de a comprima toate fișierele dintr-un folder într-un fișier ZIP și de a defini o parolă pentru fișierele create. Dacă doriți să creați fișiere ZIP fără protecție, vă rugăm să setați valoarea acestuia la null sau să nu declarați ca să lase fișierul fără protecție prin parolă. Acceptă un număr mare de fișiere.

Creați un fișier ZIP protejat cu parolă - 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();
  }
}
 Română