C# .NET bibliotēka saspiešanas failu formātiem
Atvērtā pirmkoda bezmaksas .NET API failu arhivēšanas formātiem, piemēram, ZIP, GZIP, TAR un BZIP2.
SharpZipLib bibliotēka ir pilnībā rakstīta C# valodā .NET platformai. Tas tiek ieviests kā komplekts, un tāpēc to var iekļaut citos projektos (jebkurā .NET valodā).
Sākotnēji tas tika pārnests no GNU Classpath java.util.zip bibliotēkas, lai to varētu izmantot ar SharpDevelop, kam bija nepieciešama GZIP un ZIP saspiešana. Vēlāk lielā lietotāju pieprasījuma dēļ bibliotēkā tika iekļauta arī BZIP2 un Tar arhivēšana.
Darba sākšana ar SharpZipLib
Lai konfigurētu SharpZipLib, ir nepieciešama .NET Framework 4.5 vai jaunāka versija. Kad esat izpildījis priekšnoteikumus, varat manuāli lejupielādēt repozitoriju no GitHub vai tieši ienest komplektāciju no NuGet.
Ieteicamais SharpZipLib instalēšanas veids ir no NuGet, jo tas ir pieejams kā NuGet pakotne.
Instalējiet SharpZipLib no NuGet
Install-Package SharpZipLib
NET bibliotēka, lai izveidotu un izvilktu ZIP failus
SharpZipLib ļauj programmatūras izstrādātājiem izveidot ZIP failu savās .NET lietojumprogrammās. Izstrādātāji var viegli saspiest visus direktorijā pieejamos failus un piešķirt tos vienā zip failā. ZIP ir viens no populārākajiem saspiešanas failu formātiem un sniedz lietotājiem iespēju samazināt failu lielumu. API atbalsta arī ZIP failu satura izvilkšanu lietotāja izvēlētā vietā
Izvilkt failus no 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);
}
}
}
Izveidojiet ar paroli aizsargātu ZIP failu
SharpZipLib sniedz programmatūras izstrādātājiem iespēju saspiest visus mapē esošos failus ZIP failā un definēt izveidoto failu paroli. Ja vēlaties izveidot ZIP failus bez aizsardzības, lūdzu, iestatiet tā vērtību uz nulli vai nepaziņojiet, ka tas atstāj failu bez paroles aizsardzības. Tā atbalsta lielu skaitu failu.
Izveidojiet ar paroli aizsargātu ZIP failu - 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();
}
}