1. Produkti
  2.   Saspiešana
  3.   .NET
  4.   SharpZipLib
 
  

C# .NET bibliotēka saspiešanas failu formātiem

Atvērtā pirmkoda bezmaksas .NET API failu arhivēšanas formātiem, piemēram, ZIP, GZIP, TAR un BZIP2.

SharpZipLib bibliotēka ir pilnībā rakstīta C# valodā .NET platformai. Tas tiek ieviests kā komplekts, un tāpēc to var iekļaut citos projektos (jebkurā .NET valodā).

Sākotnēji tas tika pārnests no GNU Classpath java.util.zip bibliotēkas, lai to varētu izmantot ar SharpDevelop, kam bija nepieciešama GZIP un ZIP saspiešana. Vēlāk lielā lietotāju pieprasījuma dēļ bibliotēkā tika iekļauta arī BZIP2 un Tar arhivēšana.

Previous Next

Darba sākšana ar SharpZipLib

Lai konfigurētu SharpZipLib, ir nepieciešama .NET Framework 4.5 vai jaunāka versija. Kad esat izpildījis priekšnoteikumus, varat manuāli lejupielādēt repozitoriju no GitHub vai tieši ienest komplektāciju no NuGet.

Ieteicamais SharpZipLib instalēšanas veids ir no NuGet, jo tas ir pieejams kā NuGet pakotne

Instalējiet SharpZipLib no NuGet

 Install-Package SharpZipLib

NET bibliotēka, lai izveidotu un izvilktu ZIP failus

SharpZipLib ļauj programmatūras izstrādātājiem izveidot ZIP failu savās .NET lietojumprogrammās. Izstrādātāji var viegli saspiest visus direktorijā pieejamos failus un piešķirt tos vienā zip failā. ZIP ir viens no populārākajiem saspiešanas failu formātiem un sniedz lietotājiem iespēju samazināt failu lielumu. API atbalsta arī ZIP failu satura izvilkšanu lietotāja izvēlētā vietā

Izvilkt failus no 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);
    }
  }
}

Izveidojiet ar paroli aizsargātu ZIP failu

SharpZipLib sniedz programmatūras izstrādātājiem iespēju saspiest visus mapē esošos failus ZIP failā un definēt izveidoto failu paroli. Ja vēlaties izveidot ZIP failus bez aizsardzības, lūdzu, iestatiet tā vērtību uz nulli vai nepaziņojiet, ka tas atstāj failu bez paroles aizsardzības. Tā atbalsta lielu skaitu failu.

Izveidojiet ar paroli aizsargātu ZIP failu - 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();
  }
}
 Latviski