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.
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();
}
}