1. Ürün:% s
  2.   Sıkıştırma
  3.   .NET
  4.   SharpZipLib
 
  

Sıkıştırma Dosya Biçimleri için C# .NET Kitaplığı

ZIP, GZIP, TAR ve BZIP2 gibi dosya arşivleyici biçimleri için Açık Kaynak Ücretsiz .NET API.

SharpZipLib kitaplığı, .NET platformu için tamamen C# ile yazılmıştır. Bir derleme olarak uygulanır ve böylece onu diğer projelere dahil edebilirsiniz (herhangi bir .NET dilinde).

Orijinal olarak GNU Classpath java.util.zip kitaplığından taşınmıştır, böylece GZIP ve ZIP sıkıştırmasına ihtiyaç duyan SharpDevelop ile kullanılabilir. Daha sonra yüksek kullanıcı talebi nedeniyle BZIP2 ve Tar arşivleme de kitaplığa dahil edildi.

Previous Next

SharpZipLib'e Başlarken

SharpZipLib'i yapılandırmak için .NET Framework 4.5 veya üzeri sürüme sahip olmanız gerekir. Ön koşulları karşıladıktan sonra, depoyu GitHub'dan manuel olarak indirebilir veya derlemeyi doğrudan NuGet'ten getirebilirsiniz.

SharpZipLib'i kurmanın önerilen yolu, bir NuGet Paketi olarak mevcut olduğundan NuGet'tendir. 

NuGet'ten SharpZipLib'i yükleyin

 Install-Package SharpZipLib

ZIP Dosyaları Oluşturmak ve Çıkarmak için NET Kitaplığı

SharpZipLib, yazılım geliştiricilerin kendi .NET uygulamaları içinde bir ZIP dosyası oluşturmasına olanak tanır. Geliştiriciler, bir dizinde bulunan tüm dosyaları kolayca sıkıştırabilir ve bunları tek bir zip dosyasına atayabilir. ZIP, en popüler sıkıştırma dosya biçimlerinden biridir ve kullanıcılara dosyaların boyutunu küçültme olanağı verir. API, ZIP dosyalarının içeriğinin kullanıcının tercih ettiği bir yere çıkarılmasını da destekler.

Dosyaları ZIP'den çıkarı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);
    }
  }
}

Parola Korumalı ZIP Dosyası Oluşturun

SharpZipLib, yazılım geliştiricilere bir klasör içindeki tüm dosyaları bir ZIP dosyasına sıkıştırma ve oluşturulan dosyalar için bir parola tanımlama yeteneği verir. Korumasız ZIP dosyaları oluşturmak istiyorsanız, lütfen değerini null olarak ayarlayın veya dosyayı herhangi bir parola koruması olmadan bırakacağını beyan etmeyin. Çok sayıda dosyayı destekler.

Parola korumalı bir ZIP dosyası oluşturun - 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();
  }
}
 Türkçe