سورس کد نرم‌افزار فشرده‌سازی با SharpZipLib و DotNetZip در VB.NET


در دنیای توسعه نرم‌افزار، فشرده‌سازی فایل‌ها یکی از نیازهای اساسی است که به شدت مورد توجه قرار می‌گیرد. این فرآیند، نه تنها حجم داده‌ها را کاهش می‌دهد بلکه انتقال و ذخیره‌سازی اطلاعات را بسیار آسان‌تر و کارآمدتر می‌سازد. در محیط برنامه‌نویسی VB.NET، توسعه‌دهندگان معمولاً از کتابخانه‌های قدرتمند و قابل اعتماد مانند SharpZipLib و DotNetZip برای انجام عملیات فشرده‌سازی و استخراج فایل‌ها بهره می‌برند. در ادامه، به طور جامع و کامل به بررسی این دو کتابخانه، نحوه کار با آن‌ها، مزایا و معایبشان، و نمونه کدهای عملی می‌پردازیم.
مقدمه‌ای بر کتابخانه‌های فشرده‌سازی در VB.NET
VB.NET، زبان برنامه‌نویسی قدرتمند و محبوب در پلتفرم دات‌نت است که امکانات بی‌نظیری برای مدیریت فایل‌ها، کار با داده‌ها و انجام عملیات پیچیده را فراهم می‌آورد. در زمینه فشرده‌سازی فایل، چندین کتابخانه وجود دارد که هر کدام ویژگی‌ها و قابلیت‌های خاص خود را دارند. در میان این کتابخانه‌ها، SharpZipLib و DotNetZip به دلیل سهولت استفاده، سرعت بالا و پشتیبانی از فرمت‌های مختلف، بیشترین شهرت را دارند.
SharpZipLib چیست؟
SharpZipLib، یک کتابخانه متن باز و چند منظوره است که به زبان C# نوشته شده است اما در پروژه‌های VB.NET نیز به راحتی قابل استفاده است. این کتابخانه، امکانات گسترده‌ای برای فشرده‌سازی و استخراج فایل‌های ZIP، GZIP، Tar و سایر فرمت‌های فشرده‌سازی را فراهم می‌کند. یکی از مزایای اصلی آن، پشتیبانی کامل از عملیات سطح پایین و قابلیت‌های پیشرفته مانند رمزنگاری، مدیریت فایل‌های بزرگ و عملیات چندمنظوره است.
DotNetZip چیست؟
برعکس، DotNetZip یک کتابخانه بسیار سبک و کاربرپسند است که مخصوص عملیات ZIP طراحی شده است. این کتابخانه نیز متن باز است و توسط توسعه‌دهندگان مختلف بهبود یافته است. DotNetZip، تمرکز بیشتری بر سادگی و انعطاف‌پذیری دارد و به همین دلیل، برای پروژه‌هایی که نیاز به عملیات سریع و بدون پیچیدگی دارند، گزینه‌ای عالی است. همچنین، این کتابخانه، ابزارهای متنوعی برای افزودن، حذف، فشرده‌سازی و استخراج فایل‌ها دارد.
نحوه نصب و راه‌اندازی
برای استفاده از این کتابخانه‌ها در پروژه‌های VB.NET، ابتدا باید آن‌ها را به پروژه خود اضافه کنید. این کار معمولاً از طریق NuGet Package Manager انجام می‌شود. کافی است در محیط Visual Studio، به قسمت Manage NuGet Packages بروید، نام کتابخانه مورد نظر را جستجو کنید و نصب نمایید.
برای SharpZipLib، کافی است عبارت "SharpZipLib" را جستجو و نصب کنید. در مقابل، برای DotNetZip، عبارت "DotNetZip" یا "Ionic.Zip" را جستجو و نصب نمایید. پس از نصب، می‌توانید در کدهای خود از آن‌ها بهره ببرید.
کد نمونه فشرده‌سازی با SharpZipLib
در ادامه، نمونه کد ساده برای فشرده‌سازی فایل با استفاده از SharpZipLib آورده شده است:
vb  

Imports ICSharpCode.SharpZipLib.Zip
Public Sub CompressFileSharpZipLib(sourceFile As String, zipFileName As String)

Using zipOutputStream As New ZipOutputStream(System.IO.File.Create(zipFileName))

zipOutputStream.SetLevel(9) ' سطح فشرده‌سازی، 0 کمترین، 9 بیشترین

Dim fileName As String = System.IO.Path.GetFileName(sourceFile)

Dim newEntry As New ZipEntry(fileName)

zipOutputStream.PutNextEntry(newEntry)
Dim buffer As Byte() = New Byte(4096) {}

Using fileStream As New System.IO.FileStream(sourceFile, System.IO.FileMode.Open, System.IO.FileAccess.Read)

Dim sourceBytes As Integer

Do

sourceBytes = fileStream.Read(buffer, 0, buffer.Length)

zipOutputStream.Write(buffer, 0, sourceBytes)

Loop While sourceBytes > 0

End Using

zipOutputStream.CloseEntry()

zipOutputStream.IsStreamOwner = True

zipOutputStream.Close()

End Using

End Sub


در این کد، ابتدا یک شیء `ZipOutputStream` ساخته می‌شود، سپس فایل موردن... ← ادامه مطلب در magicfile.ir