امروز به کلاسی برخوردم که خیلی جالب بود و تمامی زیان ها هم میتونن ازش استفاده کنند و در ضمن مثال هم داره که چجوری میشه ازش استفاده کرد گفتم بزارم اینجا تا بقیه هم بتونن استفاده کنند ...
فشرده سازی و استخراج (Zip & Unzip) فایل ها و فولدر ها همواره مورد نظر توسعه گران نرم افزار بوده است. نوشتن یک کتابخانه قدرتمند جهت انجام اعمال پیشرفته فشرده سازی با استفاده از توابع و کلاس های پایه DotNet Framework کار بسیار وقت گیر و نه چندان ساده ای می باشد.
در حال حاضر کتابخانه های قدرتمندی از جمله SharpZipLib و GZipStream وجود دارند که می توان از آن ها جهت رفع این مشکل استفاده نمود. ولی در این مقاله قصد دارم به معرفی کتابخانه DotNetZip بپردازم. این کتابخانه به صورت متن باز و همراه با مثال ها و مستندات مربوطه از اینجا قابل دریافت می باشد.
کتابخانه DotNetZip بسیار قدرتمند و آسان جهت استفاده می باشد. ضمنا این کتابخانه علاوه بر استفاده در برنامه های تحت ویندوز و وب، قابلیت استفاده در برنامه های موبایل (Compact Framework) را نیز دارد.
منبع : CSharp.com
مثال C# :
به طور مثال در قطعه کد زیر، ما فولدری به نام MyFolder را فشرده نموده و با نام MyFolder.zip ذخیره نموده ایم
using System.Windows.Forms;
using Ionic.Zip;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private void Form1_Load(object sender, EventArgs e)
{
using (ZipFile zip = new ZipFile())
{
zip.AddDirectory(@"D:\MyFolder");
zip.Save(@"D:\MyFolder.zip");
}
}
}
}
همانطور که ملاحظه می نمایید، این عمل به ساده ترین شکل ممکن انجام پذیرفته است.
خوب مثال بالا سادست و نیاز به توضیح نداره هرچند که مثال های کامل تر هم توی فایل اصلیش هستش ... ولی باز این هم نمونه میزارم : VB.net
Vb.net :
Imports Ionic.Zip
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Using Ziper As ZipFile = New ZipFile
Ziper.AddDirectory("آدرس فایل و یا پوشه مورد نظر")
Ziper.Save("آدرس محل ذخیره سازی فایل ")
End Using
End Sub
End Class
حجم فایل بالا هم با تمام مثال ها برای همه زبان ها حدود 7 mg هستش ! ولی فایل Dll رو هم برای کسایی که سرعتشون کمه ضمیمه کردم ! البته لازم هم نیست اونو دانلود کنید با این مثال ها و فایل کارتون راه میفته!
نظر بدین بازم دارما !!!
موفق باشین ...