1. Tuotteet
  2.   Puristus
  3.   .NET
  4.   SharpZipLib
 
  

C# .NET-kirjasto pakkaustiedostomuodoille

Avoimen lähdekoodin ilmainen .NET API tiedostojen arkistointimuodoille, kuten ZIP, GZIP, TAR ja BZIP2.

SharpZipLib-kirjasto on kirjoitettu kokonaan C#-kielellä .NET-alustalle. Se toteutetaan kokoonpanona, joten voit sisällyttää sen muihin projekteihin (millä tahansa .NET-kielellä).

Se siirrettiin alun perin GNU Classpath java.util.zip -kirjastosta, jotta sitä voitiin käyttää SharpDevelopin kanssa, joka tarvitsi GZIP- ja ZIP-pakkauksen. Myöhemmin suuren käyttäjien kysynnän vuoksi kirjastoon lisättiin myös BZIP2- ja Tar-arkistointi.

Previous Next

SharpZipLibin käytön aloittaminen

Sinulla on oltava .NET Framework 4.5 tai uudempi, jotta voit määrittää SharpZipLibin. Kun olet täyttänyt edellytykset, voit ladata arkiston manuaalisesti GitHubista tai suoraan noutaa kokoonpanon NuGetistä.

Suositeltu tapa asentaa SharpZipLib on NuGet, koska se on saatavana NuGet-pakettina

Asenna SharpZipLib NuGetista

 Install-Package SharpZipLib

NET-kirjasto ZIP-tiedostojen luomiseen ja purkamiseen

SharpZipLib antaa ohjelmistokehittäjille mahdollisuuden luoda ZIP-tiedoston omissa .NET-sovelluksissaan. Kehittäjät voivat helposti pakata kaikki hakemistossa olevat tiedostot ja määrittää ne yhdeksi zip-tiedostoksi. ZIP on yksi suosituimmista pakkaustiedostomuodoista ja antaa käyttäjille mahdollisuuden pienentää tiedostojen kokoa. API tukee myös ZIP-tiedostojen sisällön purkamista käyttäjän valitsemaan paikkaan

Pura tiedostot 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);
    }
  }
}

Luo salasanasuojattu ZIP-tiedosto

SharpZipLib antaa ohjelmistokehittäjille mahdollisuuden pakata kaikki kansion tiedostot ZIP-tiedostoksi ja määrittää salasanan luoduille tiedostoille. Jos haluat luoda ZIP-tiedostoja ilman suojausta, aseta sen arvoksi null tai älä määritä sitä jättämään tiedostoa ilman salasanasuojausta. Se tukee suurta määrää tiedostoja.

Luo salasanalla suojattu ZIP-tiedosto - 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();
  }
}
 Suomen