सी # .नेट लाइब्रेरी संपीड़न फ़ाइल स्वरूपों के लिए
ज़िप, GZIP, TAR और BZIP2 जैसे फ़ाइल संग्रहकर्ता प्रारूपों के लिए ओपन सोर्स फ्री .NET एपीआई।
SharpZipLib लाइब्रेरी पूरी तरह से .NET प्लेटफॉर्म के लिए C# में लिखी गई है। इसे एक असेंबली के रूप में लागू किया गया है और इसलिए आप इसे अन्य परियोजनाओं (किसी भी .NET भाषा में) में शामिल कर सकते हैं।
इसे मूल रूप से GNU Classpath java.util.zip लाइब्रेरी से पोर्ट किया गया था, इसलिए इसे SharpDevelop के साथ इस्तेमाल किया जा सकता है, जिसे GZIP और ZIP कंप्रेशन की जरूरत होती है। बाद में उच्च उपयोगकर्ता की मांग के कारण, पुस्तकालय में BZIP2 और टार संग्रह को भी शामिल किया गया।
SharpZipLib के साथ शुरुआत करना
SharpZipLib को कॉन्फ़िगर करने के लिए आपके पास .NET Framework 4.5 या इसके बाद के संस्करण की आवश्यकता है। एक बार जब आप पूर्वापेक्षाएँ पूरी कर लेते हैं, तो आप GitHub से रिपॉजिटरी को मैन्युअल रूप से डाउनलोड कर सकते हैं या सीधे NuGet से असेंबली प्राप्त कर सकते हैं।
SharpZipLib को स्थापित करने का अनुशंसित तरीका NuGet से है क्योंकि यह NuGet पैकेज के रूप में उपलब्ध है।
NuGet से SharpZipLib स्थापित करें
Install-Package SharpZipLib
ज़िप फ़ाइलें बनाने और निकालने के लिए NET लाइब्रेरी
SharpZipLib सॉफ्टवेयर डेवलपर्स को अपने स्वयं के .NET अनुप्रयोगों के अंदर एक ज़िप फ़ाइल बनाने में सक्षम बनाता है। डेवलपर्स एक निर्देशिका के अंदर उपलब्ध सभी फाइलों को आसानी से संपीड़ित कर सकते हैं और उन्हें एक ज़िप फ़ाइल में असाइन कर सकते हैं। ज़िप सबसे लोकप्रिय संपीड़न फ़ाइल स्वरूपों में से एक है और उपयोगकर्ताओं को फ़ाइलों के आकार को कम करने की सुविधा देता है। एपीआई ज़िप फ़ाइलों की सामग्री को उपयोगकर्ता की पसंद के स्थान पर निकालने का भी समर्थन करता है
ज़िप से फ़ाइलें निकालें - सी #
// 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);
}
}
}
पासवर्ड से सुरक्षित ज़िप फ़ाइल बनाएं
SharpZipLib सॉफ़्टवेयर डेवलपर्स को एक फ़ोल्डर के अंदर सभी फ़ाइलों को एक ज़िप फ़ाइल में संपीड़ित करने और बनाई गई फ़ाइलों के लिए एक पासवर्ड परिभाषित करने की क्षमता देता है। यदि आप बिना सुरक्षा के ज़िप फ़ाइलें बनाना चाहते हैं, तो कृपया इसके मान को शून्य पर सेट करें या बिना किसी पासवर्ड सुरक्षा के फ़ाइल को छोड़ने की घोषणा न करें। यह बड़ी संख्या में फाइलों का समर्थन करता है।
पासवर्ड से सुरक्षित ज़िप फ़ाइल बनाएँ - 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();
}
}