1. Məhsullar
  2.   Sıxılma
  3.   .NET
  4.   SharpZipLib
 
  

Sıxılma Fayl Formatları üçün C# .NET Kitabxanası

ZIP, GZIP, TAR və BZIP2 kimi fayl arxivi formatları üçün Açıq Mənbəli Pulsuz .NET API.

SharpZipLib kitabxanası .NET platforması üçün tamamilə C# dilində yazılmışdır. O, montaj kimi həyata keçirilir və siz onu digər layihələrə (istənilən .NET dilində) daxil edə bilərsiniz.

O, ilkin olaraq GNU Classpath java.util.zip kitabxanasından köçürülmüşdür ki, GZIP və ZIP sıxılma tələb edən SharpDevelop ilə istifadə oluna bilsin. Daha sonra istifadəçinin yüksək tələbinə görə BZIP2 və Tar arxivləşdirmə də kitabxanaya daxil edildi.

Previous Next

SharpZipLib ilə işə başlamaq

SharpZipLib-i konfiqurasiya etmək üçün .NET Framework 4.5 və ya daha yuxarı versiyaya sahib olmalısınız. İlkin şərtləri yerinə yetirdikdən sonra siz deponu əl ilə GitHub-dan yükləyə və ya birbaşa NuGet-dən montajı əldə edə bilərsiniz.

SharpZipLib-i quraşdırmanın tövsiyə olunan yolu NuGet-dəndir, çünki o, NuGet Paketi kimi mövcuddur. 

NuGet-dən SharpZipLib-i quraşdırın

 Install-Package SharpZipLib

ZIP faylları yaratmaq və çıxarmaq üçün NET Kitabxanası

SharpZipLib proqram tərtibatçılarına öz .NET proqramlarında ZIP faylı yaratmağa imkan verir. Tərtibatçılar kataloq daxilində mövcud olan bütün faylları asanlıqla sıxışdıra və onları bir zip faylına təyin edə bilərlər. ZIP ən populyar sıxılma fayl formatlarından biridir və istifadəçilərə faylların ölçüsünü azaltmaq imkanı verir. API həmçinin ZIP fayllarının məzmununun istifadəçinin seçdiyi yerə çıxarılmasını dəstəkləyir

ZIP-dən faylları çıxarın - 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);
    }
  }
}

Parolla qorunan ZIP faylı yaradın

SharpZipLib proqram tərtibatçılarına qovluqdakı bütün faylları ZIP faylına sıxışdırmaq və yaradılmış fayllar üçün parol təyin etmək imkanı verir. Əgər qorunmadan ZIP faylları yaratmaq istəyirsinizsə, lütfən, onun dəyərini null olaraq təyin edin və ya faylı heç bir parol qorunması olmadan tərk etməsini elan etməyin. Çox sayda faylı dəstəkləyir.

Parolla qorunan ZIP faylı yaradın - 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();
  }
}
 Azəri