1. Produkter
  2.   Kompression
  3.   .NET
  4.   SharpZipLib
 
  

C# .NET bibliotek til komprimeringsfilformater

Open Source Gratis .NET API til filarkiveringsformater som ZIP, GZIP, TAR og BZIP2.

SharpZipLib-biblioteket er skrevet udelukkende i C# til .NET-platformen. Det er implementeret som en samling, så du kan inkorporere det i andre projekter (på ethvert .NET-sprog).

Det blev oprindeligt porteret fra GNU Classpath java.util.zip-biblioteket, så det kunne bruges med SharpDevelop, som havde brug for GZIP & ZIP-komprimering. Senere på grund af høj efterspørgsel fra brugere blev BZIP2- og Tar-arkivering også inkluderet i biblioteket.

Previous Next

Kom godt i gang med SharpZipLib

Du skal have .NET Framework 4.5 eller nyere for at konfigurere SharpZipLib. Når du har opfyldt forudsætningerne, kan du manuelt downloade lageret fra GitHub eller direkte hente samlingen fra NuGet.

Den anbefalede måde at installere SharpZipLib på er fra NuGet, da den er tilgængelig som en NuGet-pakke

Installer SharpZipLib fra NuGet

 Install-Package SharpZipLib

NET-bibliotek til at oprette og udpakke ZIP-filer

SharpZipLib gør det muligt for softwareudviklere at oprette en ZIP-fil i deres egne .NET-applikationer. Udviklere kan nemt komprimere alle tilgængelige filer i en mappe og tildele dem til en enkelt zip-fil. ZIP er et af de mest populære komprimeringsfilformater og giver brugerne mulighed for at reducere størrelsen af filer. API'en understøtter også udpakning af indholdet af ZIP-filer til et sted efter brugerens valg

Udpak filer fra 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);
    }
  }
}

Opret en kodeordsbeskyttet ZIP-fil

SharpZipLib giver softwareudviklere muligheden for at komprimere alle filerne i en mappe til en ZIP-fil og definere en adgangskode til de oprettede filer. Hvis du vil oprette ZIP-filer uden beskyttelse, skal du indstille dens værdi til null eller ikke erklære, at filen efterlades uden adgangskodebeskyttelse. Det understøtter et stort antal filer.

Opret en kodeordsbeskyttet ZIP-fil - 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();
  }
}
 Dansk