1. Termékek
  2.   Tömörítés
  3.   .NET
  4.   SharpZipLib
 
  

C# .NET Library tömörítési fájlformátumokhoz

Nyílt forráskódú ingyenes .NET API olyan fájlarchiváló formátumokhoz, mint a ZIP, GZIP, TAR és BZIP2.

A SharpZipLib könyvtár teljes egészében C# nyelven íródott a .NET platformhoz. Összeállításként valósul meg, így beépíthető más projektekbe (bármely .NET nyelven).

Eredetileg a GNU Classpath java.util.zip könyvtárából portolták, így használható volt a SharpDeveloppal, amelyhez GZIP és ZIP tömörítésre volt szükség. Később a nagy felhasználói igények miatt a BZIP2 és a Tar archiválás is bekerült a könyvtárba.

Previous Next

A SharpZipLib első lépései

A SharpZipLib konfigurálásához .NET Framework 4.5 vagy újabb verzióra van szükség. Ha teljesítette az előfeltételeket, manuálisan letöltheti a tárat a GitHub webhelyről, vagy közvetlenül letöltheti az összeállítást a NuGetből.

A SharpZipLib telepítésének javasolt módja a NuGet, mivel NuGet-csomagként érhető el. 

Telepítse a SharpZipLib programot a NuGetből

 Install-Package SharpZipLib

NET Library ZIP fájlok létrehozásához és kibontásához

A SharpZipLib lehetővé teszi a szoftverfejlesztők számára, hogy ZIP-fájlt hozzanak létre saját .NET-alkalmazásaikon belül. A fejlesztők könnyedén tömöríthetik a könyvtárban elérhető összes fájlt, és egyetlen zip fájlba rendelhetik őket. A ZIP az egyik legnépszerűbb tömörítési fájlformátum, és lehetőséget ad a felhasználóknak a fájlok méretének csökkentésére. Az API támogatja a ZIP fájlok tartalmának a felhasználó által választott helyre történő kibontását is

Fájlok kibontása a ZIP-ből - 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);
    }
  }
}

Hozzon létre egy jelszóval védett ZIP fájlt

A SharpZipLib lehetővé teszi a szoftverfejlesztők számára, hogy a mappában lévő összes fájlt ZIP-fájlba tömörítsék, és jelszót adjanak meg a létrehozott fájlokhoz. Ha védelem nélkül szeretne ZIP fájlokat létrehozni, akkor állítsa az értékét nullra, vagy ne deklarálja, hogy jelszavas védelem nélkül hagyja a fájlt. Nagyszámú fájlt támogat.

Hozzon létre egy jelszóval védett ZIP fájlt - 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();
  }
}
 Magyar