1. Produkty
  2.   Kompresja
  3.   .NET
  4.   SharpZipLib
 
  

Biblioteka C# .NET dla formatów plików kompresji

Darmowy interfejs API .NET typu Open Source dla formatów archiwizacji plików, takich jak ZIP, GZIP, TAR i BZIP2.

Biblioteka SharpZipLib jest w całości napisana w języku C# dla platformy .NET. Jest zaimplementowany jako zestaw, dzięki czemu można go włączyć do innych projektów (w dowolnym języku .NET).

Pierwotnie został przeniesiony z biblioteki GNU Classpath java.util.zip, aby mógł być używany z SharpDevelop, który wymagał kompresji GZIP i ZIP. Później ze względu na duże zapotrzebowanie użytkowników do biblioteki włączono również archiwizację BZIP2 i Tar.

Previous Next

Pierwsze kroki z SharpZipLib

Aby skonfigurować SharpZipLib, musisz mieć .NET Framework 4.5 lub nowszy. Po spełnieniu wymagań wstępnych możesz ręcznie pobrać repozytorium z GitHub lub bezpośrednio pobrać zestaw z NuGet.

Zalecanym sposobem instalacji SharpZipLib jest korzystanie z NuGet, ponieważ jest on dostępny jako Pakiet NuGet

Zainstaluj SharpZipLib z NuGet

 Install-Package SharpZipLib

Biblioteka NET do tworzenia i wyodrębniania plików ZIP

SharpZipLib umożliwia programistom tworzenie plików ZIP w ich własnych aplikacjach .NET. Programiści mogą łatwo skompresować wszystkie pliki dostępne w katalogu i przypisać je do jednego pliku zip. ZIP jest jednym z najpopularniejszych formatów plików kompresji i daje użytkownikom możliwość zmniejszenia rozmiaru plików. API obsługuje również rozpakowywanie zawartości plików ZIP w wybrane przez użytkownika miejsce

Wyodrębnij pliki z 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);
    }
  }
}

Utwórz plik ZIP chroniony hasłem

SharpZipLib daje programistom możliwość skompresowania wszystkich plików w folderze do pliku ZIP i zdefiniowania hasła dla tworzonych plików. Jeśli chcesz tworzyć pliki ZIP bez ochrony, ustaw jego wartość na null lub nie deklaruj pozostawienia pliku bez ochrony hasłem. Obsługuje dużą liczbę plików.

Utwórz plik ZIP chroniony hasłem — 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();
  }
}
 Polski