فشرده سازی و استخراج (Zip & Unzip) فایل ها و فولدر ها همواره مورد نظر توسعه گران نرم افزار بوده است. نوشتن یک کتابخانه قدرتمند جهت انجام اعمال پیشرفته فشرده سازی با استفاده از توابع و کلاس های پایه DotNet Framework کار بسیار وقت گیر و نه چندان ساده ای می باشد.
در حال حاضر کتابخانه های قدرتمندی از جمله SharpZipLib و GZipStream وجود دارند که می توان از آن ها جهت رفع این مشکل استفاده نمود. ولی در این مقاله قصد دارم به معرفی کتابخانه DotNetZip بپردازم. این کتابخانه به صورت متن باز و همراه با مثال ها و مستندات مربوطه از اینجا قابل دریافت می باشد.
کتابخانه DotNetZip بسیار قدرتمند و آسان جهت استفاده می باشد. ضمنا این کتابخانه علاوه بر استفاده در برنامه های تحت ویندوز و وب، قابلیت استفاده در برنامه های موبایل (Compact Framework) را نیز دارد.
به طور مثال در قطعه کد زیر، ما فولدری به نام MyFolder را فشرده نموده و با نام MyFolder.zip ذخیره نموده ایم.
using System;
using Ionic.Zip;
namespace ZipSample
{
class Program
{
static void Main(string[] args)
{
using (ZipFile zip = new ZipFile())
{
zip.AddDirectory(@"D:\MyFolder");
zip.Save(@"D:\MyFolder.zip");
}
}
}
}
همانطور که ملاحظه می نمایید، این عمل به ساده ترین شکل ممکن انجام پذیرفته است.