1. produkty
  2.   Komprese
  3.   .NET
  4.   SharpZipLib
 
  

Knihovna C# .NET pro formáty kompresních souborů

Open Source Free .NET API pro formáty archivátorů souborů, jako jsou ZIP, GZIP, TAR a BZIP2.

Knihovna SharpZipLib je celá napsána v C# pro platformu .NET. Je implementován jako montáž a můžete jej tedy začlenit do dalších projektů (v libovolném jazyce .NET).

Původně byl portován z knihovny GNU Classpath java.util.zip, takže mohl být použit s SharpDevelop, který potřeboval kompresi GZIP a ZIP. Později kvůli vysoké poptávce uživatelů byly do knihovny zahrnuty také archivace BZIP2 a Tar.

Previous Next

Začínáme s SharpZipLib

Abyste mohli nakonfigurovat SharpZipLib, musíte mít .NET Framework 4.5 nebo vyšší. Jakmile splníte předpoklady, můžete si repozitář stáhnout ručně z GitHub nebo přímo načíst sestavení z NuGet.

Doporučený způsob instalace SharpZipLib je z NuGet, protože je k dispozici jako balíček NuGet

Nainstalujte SharpZipLib z NuGet

 Install-Package SharpZipLib

NET Library pro vytváření a extrahování souborů ZIP

SharpZipLib umožňuje vývojářům softwaru vytvořit soubor ZIP uvnitř jejich vlastních aplikací .NET. Vývojáři mohou snadno komprimovat všechny soubory dostupné v adresáři a přiřadit je do jediného souboru zip. ZIP je jedním z nejpopulárnějších formátů kompresních souborů a umožňuje uživatelům zmenšit velikost souborů. Rozhraní API také podporuje extrahování obsahu souborů ZIP na místo podle volby uživatele

Extrahujte soubory ze 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);
    }
  }
}

Vytvořte soubor ZIP chráněný heslem

SharpZipLib dává vývojářům softwaru možnost komprimovat všechny soubory ve složce do souboru ZIP a definovat heslo pro vytvořené soubory. Pokud chcete vytvářet soubory ZIP bez ochrany, nastavte jeho hodnotu na null nebo nedeklarujte, že soubor ponecháte bez ochrany heslem. Podporuje velké množství souborů.

Vytvořte soubor ZIP chráněný heslem - 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();
  }
}
 Čeština