Sıxılma Fayl Formatları üçün C# .NET Kitabxanası
ZIP, GZIP, TAR və BZIP2 kimi fayl arxivi formatları üçün Açıq Mənbəli Pulsuz .NET API.
SharpZipLib kitabxanası .NET platforması üçün tamamilə C# dilində yazılmışdır. O, montaj kimi həyata keçirilir və siz onu digər layihələrə (istənilən .NET dilində) daxil edə bilərsiniz.
O, ilkin olaraq GNU Classpath java.util.zip kitabxanasından köçürülmüşdür ki, GZIP və ZIP sıxılma tələb edən SharpDevelop ilə istifadə oluna bilsin. Daha sonra istifadəçinin yüksək tələbinə görə BZIP2 və Tar arxivləşdirmə də kitabxanaya daxil edildi.
SharpZipLib ilə işə başlamaq
SharpZipLib-i konfiqurasiya etmək üçün .NET Framework 4.5 və ya daha yuxarı versiyaya sahib olmalısınız. İlkin şərtləri yerinə yetirdikdən sonra siz deponu əl ilə GitHub-dan yükləyə və ya birbaşa NuGet-dən montajı əldə edə bilərsiniz.
SharpZipLib-i quraşdırmanın tövsiyə olunan yolu NuGet-dəndir, çünki o, NuGet Paketi kimi mövcuddur.
NuGet-dən SharpZipLib-i quraşdırın
Install-Package SharpZipLib
ZIP faylları yaratmaq və çıxarmaq üçün NET Kitabxanası
SharpZipLib proqram tərtibatçılarına öz .NET proqramlarında ZIP faylı yaratmağa imkan verir. Tərtibatçılar kataloq daxilində mövcud olan bütün faylları asanlıqla sıxışdıra və onları bir zip faylına təyin edə bilərlər. ZIP ən populyar sıxılma fayl formatlarından biridir və istifadəçilərə faylların ölçüsünü azaltmaq imkanı verir. API həmçinin ZIP fayllarının məzmununun istifadəçinin seçdiyi yerə çıxarılmasını dəstəkləyir
ZIP-dən faylları çıxarın - 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);
}
}
}
Parolla qorunan ZIP faylı yaradın
SharpZipLib proqram tərtibatçılarına qovluqdakı bütün faylları ZIP faylına sıxışdırmaq və yaradılmış fayllar üçün parol təyin etmək imkanı verir. Əgər qorunmadan ZIP faylları yaratmaq istəyirsinizsə, lütfən, onun dəyərini null olaraq təyin edin və ya faylı heç bir parol qorunması olmadan tərk etməsini elan etməyin. Çox sayda faylı dəstəkləyir.
Parolla qorunan ZIP faylı yaradın - 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();
}
}