কম্প্রেশন ফাইল ফরম্যাটের জন্য C# .NET লাইব্রেরি
ZIP, GZIP, TAR এবং BZIP2 এর মতো ফাইল আর্কাইভার ফর্ম্যাটের জন্য ওপেন সোর্স ফ্রি .NET API।
SharpZipLib লাইব্রেরি সম্পূর্ণভাবে .NET প্ল্যাটফর্মের জন্য C# এ লেখা। এটি একটি সমাবেশ হিসাবে প্রয়োগ করা হয় এবং তাই আপনি এটিকে অন্যান্য প্রকল্পে (যেকোন .NET ভাষায়) অন্তর্ভুক্ত করতে পারেন।
এটি মূলত GNU Classpath java.util.zip লাইব্রেরি থেকে পোর্ট করা হয়েছিল যাতে এটি SharpDevelop-এর সাথে ব্যবহার করা যেতে পারে, যার জন্য GZIP এবং ZIP কম্প্রেশন প্রয়োজন। পরবর্তীতে ব্যবহারকারীর উচ্চ চাহিদার কারণে, BZIP2 এবং টার আর্কাইভিংও লাইব্রেরিতে অন্তর্ভুক্ত করা হয়েছিল।
SharpZipLib দিয়ে শুরু করা
SharpZipLib কনফিগার করার জন্য আপনার .NET ফ্রেমওয়ার্ক 4.5 বা তার উপরে থাকতে হবে। আপনি পূর্বশর্তগুলি পূরণ করার পরে, আপনি GitHub থেকে সংগ্রহস্থলটি ম্যানুয়ালি ডাউনলোড করতে পারেন বা সরাসরি NuGet থেকে সমাবেশ আনতে পারেন।
SharpZipLib ইনস্টল করার প্রস্তাবিত উপায় হল NuGet থেকে কারণ এটি একটি NuGet প্যাকেজ হিসাবে উপলব্ধ৷
NuGet থেকে SharpZipLib ইনস্টল করুন
Install-Package SharpZipLib
জিপ ফাইল তৈরি এবং এক্সট্র্যাক্ট করতে NET লাইব্রেরি
SharpZipLib সফ্টওয়্যার বিকাশকারীদের তাদের নিজস্ব .NET অ্যাপ্লিকেশনগুলির মধ্যে একটি জিপ ফাইল তৈরি করতে সক্ষম করে৷ বিকাশকারীরা সহজেই একটি ডিরেক্টরির ভিতরে উপলব্ধ সমস্ত ফাইলকে সংকুচিত করতে পারে এবং সেগুলিকে একটি একক জিপ ফাইলে বরাদ্দ করতে পারে। ZIP সবচেয়ে জনপ্রিয় কম্প্রেশন ফাইল ফরম্যাটগুলির মধ্যে একটি এবং ব্যবহারকারীদের ফাইলের আকার কমানোর সুবিধা দেয়। এপিআই ব্যবহারকারীর পছন্দের জায়গায় জিপ ফাইলের বিষয়বস্তু বের করতেও সমর্থন করে
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);
}
}
}
একটি পাসওয়ার্ড সুরক্ষিত জিপ ফাইল তৈরি করুন
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();
}
}