# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > VB.NET > آموزش: ZiP و Unzip کردن فایل و فولدر ها به روش خیلی ساده !

## Alirezanet

امروز به کلاسی برخوردم که خیلی جالب بود و تمامی زیان ها هم میتونن ازش استفاده کنند و در ضمن مثال هم داره که چجوری میشه ازش استفاده کرد گفتم بزارم اینجا تا بقیه هم بتونن استفاده کنند ...  :چشمک: 


فشرده سازی و استخراج (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 رو هم برای کسایی که سرعتشون کمه ضمیمه کردم ! البته لازم هم نیست اونو دانلود کنید با این مثال ها و فایل کارتون راه میفته!

نظر بدین بازم دارما !!!

موفق باشین ...

----------


## Alirezanet

یه سری مثال هم برای کار با این فایل براتون آماده کردم ... 
یادم نره از کاراییش بگم که واقعا حرف نداره و امکانات زیادی هم داره از جمله : 
ساختن فایل فشرده و گذاشتن رمز 
باز کردن فایلهای فشرده و دادن رمز به اونها 
امکان Update فایلها 
امکان کنترل عملیات فشره سازی 
ساخت فایل با هر پسوندی که دوست داشتی! 
فشرده سازی به روش های مختلف مثلا WinZip-compatible 
و ... 
سوالی بود در خدمتم .

اضافه کردن آیتم  
Try
Using zip As ZipFile = New ZipFile
zip.AddFile("c:\photos\personal\7440-N49th.png", "")
zip.AddFile("c:\Desktop\2005_Annual_Report.pdf", "")
zip.AddFile("ReadMe.txt")
zip.Save("MyZipFile.zip")
End Using
Catch ex1 As Exception
Console.Error.WriteLine("exception: {0}", ex1.ToString)
End Try

Extract items from a zip file: 
Try
Using zip As ZipFile = ZipFile.Read(ZipFileToExtract)
Dim e As ZipEntry
For Each e In zip
e.Extract
Next
End Using
Catch ex1 As Exception
Console.Error.WriteLine("exception: {0}", ex1.ToString)
End Try
 

Extract all entries, and set the StatusMessageTextWriter so that verbose messages are generated: 
 
Using zip As ZipFile = ZipFile.Read(FilePath)
zip.StatusMessageTextWriter= System.Console.Out
'Status Messages will be sent to the console during extraction
zip.ExtractAll()
End Using
 

Create a Zip, entries get passwords: 
 
Try
Using zip As New ZipFile
'the first entry is not protected by a password
zip.AddFile("c:\datafiles\ReadMe.txt", "")
zip.Password = "123456!"
zip.AddFile("c:\photos\personal\7440-N49th.png", "images")
zip.Password= "!Secret1";
zip.AddFile("c:\Desktop\2005_Annual_Report.pdf", "files\documents")
zip.Save("Secret.zip")
End Using
Catch ex1 As System.Exception
System.Console.Error.WriteLine("exception: {0}", ex1)
End Try
 

Add a few files to a zip file, using WinZip-compatible AES encryption on the entries:  
Try
Using zip As New ZipFile
zip.Password = "The.Silvertones.Box.Set!"
zip.Encryption = EncryptionAlgorithm.WinZipAes256
zip.AddFile("c:\datafiles\RawData-2008-12-20.csv", "")
zip.AddFile("c:\photos\personal\7440-N49th.png", "images")
zip.AddFile("c:\Desktop\2005_Annual_Report.pdf", "files\documents")
zip.Save("AES-Encrypted-Secret.zip")
End Using
Catch ex1 As System.Exception
System.Console.Error.WriteLine("exception: {0}", ex1)
End Try
 

Extract entries using a password: 
 
Using zip As new ZipFile(FilePath)
Dim e As ZipEntry
For Each e In zip
If (e.UsesEncryption)
e.ExtractWithPassword("Secret!")
Else
e.Extract
End If
Next
End Using
 


ادامه دارد ......

----------


## imigrant bird

علیرضا
دستت درد نکنه ، مطلب جالبی بود ، بازم از این کارا بکن  :تشویق:

----------


## Alirezanet

ادامه مثال ها : 2 :
This example creates a zip using ZIP64 extensions. ZIP64 allows you to exceed 4gb in a zip, or 65535 entries in a zip.  
 Try
    Using zip As ZipFile = New ZipFile
        zip.UseZip64WhenSaving = Zip64Option.AsNecessary
        zip.AddFile("c:\datafiles\RawData-2009-02-12.csv", "")
        zip.AddFile("ReadMe.txt")
        zip.Save(String.Format("backup-{0}.zip", DateTime.Now.ToString("yyyyMMMdd")))
    End Using
Catch ex1 As Exception
    Console.Error.WriteLine("exception: {0}", ex1.ToString)
End Try



Create a zip file, add a file, and also add an entry from a string. When the zip is unzipped, the content from the string will be inserted into the file "Readme.txt".  

Dim Content As String = "This string will be the content of the Readme.txt file in the zip archive."
Using zip1 As ZipFile = New ZipFile
    zip1.AddEntry("Readme.txt", "This is the readme content...")
    zip1.AddFile("MyDocuments\Resume.doc", "files")
    zip1.Comment = ("This zip file was created at " & DateTime.Now.ToString("G"))
    zip1.Save("Content.zip")
End Using



Create a zip file, and add an entry taking content from a stream, like a MemoryStream or a FileStream.  
 Dim Content As String = "This string will be the content of the Readme.txt file in the zip archive."
Using zip1 As ZipFile = New ZipFile
    zip1.AddEntry("Readme.txt", stream)
    zip1.AddFile("MyDocuments\Resume.doc", "files")
    zip1.Comment = ("This zip file was created at " & DateTime.Now.ToString("G"))
    zip1.Save("Content.zip")
End Using

Read in a zip file, remove a few entries, save the file:
Dim sw As New System.IO.StringWriter
Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip", sw)
    Dim Threshold As New DateTime(2007, 7, 4)
    ' We cannot remove the entry from the list, within the context of
    ' an enumeration of said list.
    ' So we add the doomed entry to a list to be removed later.
    ' pass 1: mark the entries for removal
    Dim MarkedEntries As New System.Collections.Generic.List(Of ZipEntry)
    Dim e As ZipEntry
    For Each e In zip
        If (e.LastModified < Threshold) Then
            MarkedEntries.Add(e)
        End If
    Next
    ' pass 2: actually remove the entry.
    Dim zombie As ZipEntry
    For Each zombie In MarkedEntries
        zip.RemoveEntry(zombie)
    Next
    zip.Comment = "This archive has been updated."
    zip.Save
End Using

Add a bunch of items, whether files or directories:
Dim itempaths As String() = _
  New String() { "c:\temp\Readme.txt", _
                 "MyProposal.docx", _
                 "SupportingFiles", _
                 "images\Image1.jpg" }
Try
    Using zip As New ZipFile(ZipToCreate, Console.Out)
        Dim i As Integer
        For i = 1 To itempaths.Length - 1
            ' will add Files or Dirs, recursing and flattening subdirectories.
            zip.AddItem(itempaths(i), "flat")
        Next i
        zip.Save
    End Using
Catch ex1 As Exception
    Console.Error.WriteLine("exception: {0}", ex1.ToString())
End Try


ادامه دارد ...

----------


## Alirezanet

Create a self-extracting archive:
 
Dim DirectoryPath As String = "c:\Documents\Project7"
Using zip As New ZipFile()
    zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath))
    zip.Comment = "This will be embedded into a self-extracting console-based exe"
    zip.SaveSelfExtractor("archive.exe", SelfExtractorFlavor.ConsoleApplication)
End Using



Update some entries in a Zip file:
 
Using zip1 As New ZipFile
    ' the UpdateFile method works even if the entry does not yet exist.
    ' Really it should be called "AddOrUpdateFile"
    zip1.UpdateFile("MyDocuments\Readme.txt", "")
    zip1.UpdateFile("CustomerList.csv", "")
    zip1.Comment = "This zip archive has been created."
    zip1.Save("Content.zip")
End Using
Using zip2 As ZipFile = ZipFile.Read("Content.zip")
    zip2.UpdateFile("Updates\Readme.txt", "")
    zip2.Comment = "This zip archive has been updated: the Readme has been changed."
    zip2.Save
End Using



Produce a zip file that contains embedded zip files
 
Public Sub Run()
    Using s1 As Stream = ZipIntoMemory("c:\temp\dir1")
        Using s2 As Stream = ZipIntoMemory("c:\temp\dir2")
            Using zip1 as New ZipFile
                zip1.AddEntry("test1.zip", s1)
                zip1.AddEntry("test2.zip", s2)
                ' save to a file.  Could also save to a stream here
                zip1.Save("Tescher.zip")
            End Using
        End Using
    End Using
End Sub
Public Function ZipIntoMemory(ByVal path As String) As Stream
    Dim ms As New MemoryStream
    Using zip1 as New ZipFile
        zip1.AddDirectory(path, "Result")
        zip1.Save(ms)
    End Using
    ' move the stream position to the beginning
    ms.Seek(0,SeekOrigin.Begin)
    Return ms
End Function

----------


## Alirezanet

اگر کسی مثال برای زبان های دیگه برنامه نویسی هم احتیاج داشت بگه براش بزارم  : 
C#‎
Vb.Net
ASP.NET
Powershell
Com, ASP,PHP,VB6,Java
C++‎/CLI

موفق باشین !! :چشمک:

----------


## marzieh_

لطف میکنید با C#‎ هم مثال بگذارید؟!

----------


## Alirezanet

*اینم مثال C#‎ :* 
Create a zip file, and add items to it 
 
using (ZipFile zip = new ZipFile())
{
  zip.AddFile("ReadMe.txt");
  zip.AddFile("Resume.doc");
  zip.AddFile("Portrait.png");
  zip.Save("Package.zip");
}


Add items to a zip file, using Zip 2.0 encryption, and the same password for all items. 
 
using (ZipFile zip = new ZipFile())
{
  zip.Password= "123456!";
  zip.AddFile("ReadMe.txt");
  zip.AddFile("7440-N49th.png");
  zip.AddFile("2005_Annual_Report.pdf");
  zip.Save("Backup.zip");
}


Add files to a zip file, using Zip 2.0 encryption, and different passwords for different files. 
 
using (ZipFile zip = new ZipFile())
{
  zip.AddFile("ReadMe.txt"); // no password for this one
  zip.Password= "123456!";
  zip.AddFile("7440-N49th.png");
  zip.Password= "!Secret1";
  zip.AddFile("2005_Annual_Report.pdf");
  zip.Save("Backup.zip");
}



Create a zip archive, and add files to it, using WinZip-compatible AES 256-bit encryption for one of the files. 
 
using (ZipFile zip = new ZipFile())
{
  zip.AddFile("ReadMe.txt"); // no password for this one
  zip.Password= "Cool.Hand.Luke!";
  zip.Encryption= EncryptionAlgorithm.WinZipAes256;
  zip.AddFile("Rawdata-2008-12-18.csv");
  zip.Save("Backup-AES-Encrypted.zip");
}



No Compression 
 
using (ZipFile zip = new ZipFile())
{
  zip.ForceNoCompression = true;
  zip.AddFile(@"MyMusic\Handel\Messiah-01.mp3");
  zip.Save(ZipFileToCreate);
}



Zip a directory 
 
using (ZipFile zip = new ZipFile())
{
  zip.UseUnicode= true;  // utf-8
  zip.AddDirectory(@"MyDocuments\ProjectX");
  zip.Comment = "This zip was created at " + System.DateTime.Now.ToString("G") ;
  zip.Save(ZipFileToCreate);
}


Zip a directory 2 
 
using (ZipFile zip = new ZipFile())
{
  zip.Encoding = System.Text.Encoding.GetEncoding("big5"); // chinese
  zip.AddDirectory(@"MyDocuments\ProjectX");
  zip.Save(ZipFileToCreate);
}

----------


## bahman_akbarzadeh

متاسفانه اين لايبراري با يونيكد مشكل داره و با اينكه تو سازنده كلاسش براش UTF-8 رو مشخص ميكنم ولي توي فايل zip بجاي حروف فارسي، علامت سوال يا حروف نامشخص ميزاره.

----------


## Alirezanet

مشکل احتمالا از جای دیگست !!! 
من خودم از این کامپوننت استفاده میکنم هر توی برنامه هایی به زبان فارسی و انگلیسی ... 
حتی یکی از برنامه هام که مولتی Language هم نوشته شده ... رو ساپورت میکنه !  :متفکر:

----------


## bahman_akbarzadeh

شما از چه نسخه اي استفاده مي كنيد؟
من از نسخه 1.9.1.5 استفاده مي كنم.
تو اين نسخه امكان خوندن اطلاعات از استريم و نوشتن در استريم وجود داره.
يعني من از يه سري فايل كه پسوند خاصي نداره و اسمش توي ديتابيس ثبت شده، ميخونم و اسماشونو ست ميكنم و در نهايت فايل زيپ رو توي استريمي كه به سمت كلاينت به عنوان Response برمي گرده، مي فرستم.
ولي فقط نام هاي انگليسي درسته و نام هاي فارسي با اينكه انكودينگ فايل زيپ رو به تمامي موارد ممكن تغيير دادم، هر دفعه يك جور نوشته ميشه.
لطفا يك تست كوچيك بفرماييد.
ممنون

----------


## Alirezanet

خوب این کار خیلی سادست ... 
یه نمونه با VS 2010 نوشتم که ضمیمه کردم .... میتونی ببینی که داره راحت نام های فارسی رو هم ذخیره میکنه ..... 

کدشو هم میزارم شاید کسی باشه Vs 2010 نداشته باشه ... 

Imports Ionic.Zip
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Using ziper As ZipFile = New ZipFile
ziper.ProvisionalAlternateEncoding = System.Text.Encoding.UTF8
ziper.AddEntry(Label1.Text, 256)
ziper.AddEntry(Label2.Text, 256)
ziper.AddEntry(Label3.Text, 256)
ziper.AddEntry(Label4.Text, 256)
If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
ziper.Save(SaveFileDialog1.FileName)
End If
End Using
End Sub
End Class



4 تا لیبل هست اینجا که تکسته 2 تاشون فارسیه ...
بازم کاری بود در خدمتم !

فایل ضمیمرو یه نگاه بنداز!

----------


## bahman_akbarzadeh

ممنون از زحمت شما
من توی وب دارم استفاده میکنم و هر کاری می کنم به هیچ صراطی مستقیم نیست  :خیلی عصبانی: 
حالا سر فرصت تو یه پروژه جدید تست میکنم ببینم چی میشه و نتیجه رو اینجا مینویسم.

----------


## Alirezanet

> ممنون از زحمت شما
> من توی وب دارم استفاده میکنم و هر کاری می کنم به هیچ صراطی مستقیم نیست 
> حالا سر فرصت تو یه پروژه جدید تست میکنم ببینم چی میشه و نتیجه رو اینجا مینویسم.


توی web هم میتونی از utf8 استفاده کنی هم Unicode ...  اون کدی که گذاشتمو ببینی شاید مشکلت حل شه ... به عدد *256* هم دقت کن اگه روی 1 و 2 بزاریش کار نمیکنه ! 

بازم کاری بود در خدمتم ... 
در ضمن ممنون میشم اگه به جای پست دادن برای تشکر از امکانات سایت استفاده کنین.  :لبخند: 
موفق باشید

----------


## bahman_akbarzadeh

با 256 خطا میده
چون تو ورژن 1.9.1.5 همچین آور لودی نداره.
ورژن شما چنده؟

----------


## Alirezanet

ورژن من هم 1915 هست ... 
برنامه ضمیمرو دانلود کن ... توش همین کارو کردم . :افسرده:

----------


## DoDoklak

من این فایل رو دانلود کردم و ازش استفاده کردم.

کار کردن باهاش خیلی راحته.

ولی اصلا کیفیت فشرده سازی خوبی نداره

من یک فایل 13MB رو با WiniRAR ,WINZIP ,این کامپونینت فشرده کردم نتایج جالبی بدست آمد

 WinRAR : 1.43 MB 
 WinZIP : 1.64 MB
 Ionic.Zip.dll: 5.27 MB

در کل این کامپونینت قدرت فشرده سازی کمی داره و زیاد جالب نیست

----------


## Alirezanet

این کامپونت از روش فشرده سازی ویندوز استفاده میکرد که الان به صورت پیش فرض هستش ولی میتونید نوع های جدید که توی این ورژن ازافه شده رو هم استفاده کنید تا حجم کمتر شه ... توی یه مثال قبلا نوشتم ... 
اگه هم فایل کلی کامپوننت رو دانلود کنید توی Help توضیحات داره ...

----------


## DoDoklak

> نوع های جدید که توی این ورژن ازافه شده رو هم استفاده کنید تا حجم کمتر شه


خوب این خیلی خوبه. چون هم راحته و مهمتر از همه رایگانه
بیشتر کامپونینتهای تو اینترنت همه پولی بودن مخصوصا RAR ، اصلا کرک هم ندارن





> توی یه مثال قبلا نوشتم ...


اگر میشه اون مثال رو همیجا ذکر کنید تا بحث کاملتر بشه





> اگه هم فایل کلی کامپوننت رو دانلود کنید توی Help توضیحات داره ...


Help کجاست؟
من تو این تایپک فقط فایل Dll رو دیدم.
لطفا لینکش رو بدید

با تشکر

----------


## Alirezanet

سلام 
از اینکه دیر جواب دادم معذرت میخوام .... این هم Help ....

----------


## josh simpson

خیلی قدیمی بود.

----------


## Alirezanet

خیلی قدیمی بود.

ممنون از جوابتون !  :اشتباه: 
ولی اگه قدیمی بود و شما خیلی وقته که این کنترل رو میشناختین !!!!!!!!! حداقل یه معرفی یک سطری لطف میکردین و تو سایت برای بقیه میزاشتین,  امثال من حفیر وقت شمارو با موضوع های قدیمی نمیگرفتیم !
از اینکه این مطلب وقتتونو گرفت و مطالعه کردید عذر میخوام . 

نکته : این Dll سال 2006 ساخته شده و این ورژن که اینجا موجود هست Release 2010  هستش ... 

موفق باشید !

----------


## nima178

آقا این برنامه بسیار جالبیه
کار باشم ساده است کافی اون دی ال الی رو که مهندس داد اد کنی
ولی !
هرکار می کنم پس نمی زاره؟!!!!!!!!!!!!!!!!!!
یعنی وین رر مثه مرد بازش می کنه پسم نیمی خواد اکسترکت هم می کنه!
جریان چیه
مشکل از کجاست
من دی ال ال رو گزاشتم تو پوشه برنامه ریفرنس دادم
همین!

----------


## Alirezanet

> آقا این برنامه بسیار جالبیه
> کار باشم ساده است کافی اون دی ال الی رو که مهندس داد اد کنی
> ولی !
> هرکار می کنم پس نمی زاره؟!!!!!!!!!!!!!!!!!!
> یعنی وین رر مثه مرد بازش می کنه پسم نیمی خواد اکسترکت هم می کنه!
> جریان چیه
> مشکل از کجاست
> من دی ال ال رو گزاشتم تو پوشه برنامه ریفرنس دادم
> همین!


سلام توی مثال ها براتون نحوه این کار رو گذاشته بودم !!
این هم یه پروژه کوچیک برای روشن شدن مسئله !
موفق باشید

----------


## ebrahimv

سلام تو همه پست ها كه خوندم تو همشون فشرده كردن بود 
من يه فايل zip معمولي با پسورد دارم چه جوري اين فايل رو از حالت فشرده خارج كنم؟

----------


## Alirezanet

> سلام تو همه پست ها كه خوندم تو همشون فشرده كردن بود 
> من يه فايل zip معمولي با پسورد دارم چه جوري اين فايل رو از حالت فشرده خارج كنم؟


Extract entries using a password:


Using zip As new ZipFile(FilePath)
Dim e As ZipEntry
For Each e In zip
If (e.UsesEncryption)
e.ExtractWithPassword("Secret!")
Else
e.Extract
End If
Next
End Using

----------


## ebrahimv

> Extract entries using a password:
> 
> 
> Using zip As new ZipFile(FilePath)
> Dim e As ZipEntry
> For Each e In zip
> If (e.UsesEncryption)
> e.ExtractWithPassword("Secret!")
> Else
> ...


اين فايل كجا UNzip  ميشه؟
ميشه توضيح بدي

----------


## Alirezanet

> اين فايل كجا UNzip  ميشه؟
> ميشه توضيح بدي


خوب مثال گویاست ! 
وقتی توی Objectی  که از zipfile گرفتی (e) از Extract استفاده کنی میتونی با متد Save اون فایل هارو ذخیره کنی هر جا خواستی . 
وقتی شما extract میکنی یه فایل فشرده رو توی حافظه موقت سیستم (برنامه ) میمونه ! که میتونی از اونجا هر بلایی خواستی سرشون بیاری ! مثلا  Save کنی یا با یه For فایلهارو بخونی و توی برنامه نشون بدی!

Using zip As new ZipFile(FilePath)
Dim e As ZipEntry
For Each e In zip
If (e.UsesEncryption)
e.ExtractWithPassword("Secret!")
Else
e.Extract
End If
Next
e.Save(هرجا دلت خواست)!!
End Using

----------


## ebrahimv

> خوب مثال گویاست ! 
> وقتی توی Objectی که از zipfile گرفتی (e) از Extract استفاده کنی میتونی با متد Save اون فایل هارو ذخیره کنی هر جا خواستی . 
> وقتی شما extract میکنی یه فایل فشرده رو توی حافظه موقت سیستم (برنامه ) میمونه ! که میتونی از اونجا هر بلایی خواستی سرشون بیاری ! مثلا Save کنی یا با یه For فایلهارو بخونی و توی برنامه نشون بدی!
> 
> Using zip As new ZipFile(FilePath)
> Dim e As ZipEntry
> For Each e In zip
> If (e.UsesEncryption)
> e.ExtractWithPassword("Secret!")
> ...


ابجكت e كه درست كردي گزينه save نداره
ميشه يه نمونه برنامه درست كني ممنون ميشم

----------


## ebrahimv

ممنون كدش رو يكي از دوسان برام پيدا كرد درست عمل ميكنه

Using Ziper As ZipFile = ZipFile.Read("Source")  
              Ziper.Password = "1234"  
          Ziper.ExtractAll("Address", Ionic.Zip.ExtractExistingFileAction.OverwriteSilen  tly)  
          End Using

----------


## Alirezanet

این کد هم درسته ! کد اول هم کار میکنه ولی نه با تمام فایلهای فشره ! winrar یک نوع encoding داره که حتی winzip هم نمیتونه اون رو بخونه ! 
با کدی که اول براتون گذاشتم میشه extract کرد ولی فایلهایی که از نوع خاص rar نباشند !
موفق باشید

----------


## nima178

آقا این سورس اون کدی که گفتم کار نمی کنه
ظاهرا پسورد می زاره
هیچ اروری نمی ده
اما وین رر بازش می کنه پسوردم نمی خواد
میگید نه تستش کنید
فرم 2 کدشو ببنید
شایدم من جایی رو اشتباه می کنم
 :متفکر:

----------


## Alirezanet

سلام کد فرم 2تون رودیدم : اینجوری بنویسش دقیق : 
تست کردم کار هم کرد !

 Using MyRar As New Ionic.Zip.ZipFile
            MyRar.Password = "12345"
            MyRar.AddFile("mytemp.txt")
            MyRar.Save("mytemp.rar")
        End Using

ترتیب توی این کلاس مهمه  :متفکر:  
شما اول فایل رو Add میکردید بعد پسسوورد میذاشتید !

----------


## nima178

ای ول
حالا درست شد!
ای ول!
جالبه
نمی دونم سری اول چرا هرکاری کردم پس نمی زاشت!
با وجود اینکه ظاهرا همه چیز رو رعایت کردم!
شاید رفرنس درستی ندادم!
الان فرم یک همون فایل رو ببنید رویداد باتن 2 درست کار می کنه تازه تو یک فایل دو تا پس می زاره
در هر صورت من عجله کردم
اما مثال بالا مثال خوبیه
با کمی تغییرات!
در هر صورت دمه شما گرم
اگرچه دکمه تشکر بود ولی کفایت نمی کرد!

----------


## hosein13734

سلام و ممنون بابت ارسال مفیدتون
یه سوال دارم برای استفاده از این برنامه اون(DLL) رو تو محل اجرا کپی میکنه راهی است این کار رو نکنه و مثل بقیه توابع ازش استفاده کرد
ممنون

----------


## Alirezanet

> سلام و ممنون بابت ارسال مفیدتون
> یه سوال دارم برای استفاده از این برنامه اون(DLL) رو تو محل اجرا کپی میکنه راهی است این کار رو نکنه و مثل بقیه توابع ازش استفاده کرد
> ممنون


شما میتونید در انتهای کار پروژتون رو Publish کنید و یا Setup بسازید براش یا توی Exe برنامه Incloud کنیدش ! 
در هر هر صورت باید وجود داشته باشه ولی کجا ! به شما بستگی داره !

----------


## mahbobehshab

> اگر کسی مثال برای زبان های دیگه برنامه نویسی هم احتیاج داشت بگه براش بزارم  : 
> C#‎
> Vb.Net
> ASP.NET
> Powershell
> Com, ASP,PHP,VB6,Java
> C++‎/CLI
> 
> موفق باشین !!


دوست عزیز پس چرا آنزیپ کردن فایلها و فولدرها رو نذاشتی .اگه میتونی یه مثال برای این مورد در vb.net بذار.خیلی لازمه.راستی اون نمونه برنامه ای که برای فشرده سازی و خارج کردن اون گذاشتی باهاش نمی تونم کار کنم.از کدهاتم چیزی سردر نیاوردم آخه می دونی من تازه برنامه نویسی رو شروع کردم !من میخوام برنامه م جوری باشه که بازدن یک دکمه پنجره ی open باز بشه و هر فایل و یا فولدری که خواستم انتخاب کنم وبازدن ok اون فایلها تبدیل بشه و تو یه درایوی که می خوام ذخیره بشه و برای آنزیپ کردنش هم همینطور :یعنی هر فایل زیپی رو که انتخاب کردم به حالت عادی برگردد.اگه همینجوری تکه کدشو هم گذاشتی اشکال نداره.اگه میشه کمکم کن.مرسی.عجله هم دارم.

----------


## Alirezanet

> دوست عزیز پس چرا آنزیپ کردن فایلها و فولدرها رو نذاشتی .اگه میتونی یه مثال برای این مورد در vb.net بذار.خیلی لازمه.راستی اون نمونه برنامه ای که برای فشرده سازی و خارج کردن اون گذاشتی باهاش نمی تونم کار کنم.از کدهاتم چیزی سردر نیاوردم آخه می دونی من تازه برنامه نویسی رو شروع کردم !من میخوام برنامه م جوری باشه که بازدن یک دکمه پنجره ی open باز بشه و هر فایل و یا فولدری که خواستم انتخاب کنم وبازدن ok اون فایلها تبدیل بشه و تو یه درایوی که می خوام ذخیره بشه و برای آنزیپ کردنش هم همینطور :یعنی هر فایل زیپی رو که انتخاب کردم به حالت عادی برگردد.اگه همینجوری تکه کدشو هم گذاشتی اشکال نداره.اگه میشه کمکم کن.مرسی.عجله هم دارم.


سلام اگه به مثال ها توجه کنید چندین مورد برای Extract وجود داره ... یعنی همون (Unzip) ..... به طور مثال : 
Extract items from a zip file:
 
Try
Using zip As ZipFile = ZipFile.Read(ZipFileToExtract)
Dim e As ZipEntry
For Each e In zip
e.Extract
Next
End Using
Catch ex1 As Exception
Console.Error.WriteLine("exception: {0}", ex1.ToString)
End Try
 

Extract all entries, and set the StatusMessageTextWriter so that verbose messages are generated:
 
 
Using zip As ZipFile = ZipFile.Read(FilePath)
zip.StatusMessageTextWriter= System.Console.Out
'Status Messages will be sent to the console during extraction
zip.ExtractAll()
End Using

----------


## mahbobehshab

> یه سری مثال هم برای کار با این فایل براتون آماده کردم ... 
> یادم نره از کاراییش بگم که واقعا حرف نداره و امکانات زیادی هم داره از جمله : 
> ساختن فایل فشرده و گذاشتن رمز 
> باز کردن فایلهای فشرده و دادن رمز به اونها 
> امکان Update فایلها 
> امکان کنترل عملیات فشره سازی 
> ساخت فایل با هر پسوندی که دوست داشتی! 
> فشرده سازی به روش های مختلف مثلا WinZip-compatible 
> و ... 
> ...


سلام
ببخشید این کدی که واسه ی فشرده سازی گذاشتید اولا فقط فایلها رو میتونه تبدیل کنه پس برای پوشه ها چی؟دوما:وقتی می خواد تبدیل کنه خطا میگیره که "خطا در بازیابی اطلاعات"هستش مشکلش چیه؟
سوال بعدیم هم اینه که تو اون نمونه برنامه ای گذاشتید وقتی می خوایم یه فایل رو برای فشرده کرده انتخاب کنیم فقط فایلهای زیپ رو میشناسه در صورتی که من میخوام هر نوع فایلی رو که خواستم فشرده کنه ؟واینکه تو این برنامه کجا مسیر ذخیره ی فایل فشرده رو باید بهش بدیم؟اگه میشه یه راهنما برای برنامه تون بذاریدیا خودتون همینجوری راهنمایی کنید.ممنون.هرچی سریعتر بهتر.

----------


## Alirezanet

> سلام
> ببخشید این کدی که واسه ی فشرده سازی گذاشتید اولا فقط فایلها رو میتونه تبدیل کنه پس برای پوشه ها چی؟دوما:وقتی می خواد تبدیل کنه خطا میگیره که "خطا در بازیابی اطلاعات"هستش مشکلش چیه؟
> سوال بعدیم هم اینه که تو اون نمونه برنامه ای گذاشتید وقتی می خوایم یه فایل رو برای فشرده کرده انتخاب کنیم فقط فایلهای زیپ رو میشناسه در صورتی که من میخوام هر نوع فایلی رو که خواستم فشرده کنه ؟واینکه تو این برنامه کجا مسیر ذخیره ی فایل فشرده رو باید بهش بدیم؟اگه میشه یه راهنما برای برنامه تون بذاریدیا خودتون همینجوری راهنمایی کنید.ممنون.هرچی سریعتر بهتر.


سلام عزیز یه کم دقت مشکلاتتون رو حل میکنه !!!!!!!!!!!!!!!!!!!!!!!

برای افزودن فایل AddFile و برای افزودن فولدر AddDirectory استفاده کنید ! 
راهنما هم توی پست اول این تاپیک گذاشتم فایل اصلی این کامپوننت رو اگه دانلود کنید توش Help داره ! 
یا علی

----------


## mahbobehshab

> سلام عزیز یه کم دقت مشکلاتتون رو حل میکنه !!!!!!!!!!!!!!!!!!!!!!!
> 
> برای افزودن فایل AddFile و برای افزودن فولدر AddDirectory استفاده کنید ! 
> راهنما هم توی پست اول این تاپیک گذاشتم فایل اصلی این کامپوننت رو اگه دانلود کنید توش Help داره ! 
> یا علی


آخه من همون مثال اولی که تو پست اول برای فشرده سازی فایل گذاشتید تو فرمم گذاشتم ولی همش خطا میگیره که خطاش هم اینه"خطا در بازیابی اطلاعات" نمی دونم چیکار کنم؟ :خیلی عصبانی:

----------


## mahbobehshab

> آخه من همون مثال اولی که تو پست اول برای فشرده سازی فایل گذاشتید تو فرمم گذاشتم ولی همش خطا میگیره که خطاش هم اینه"خطا در بازیابی اطلاعات" نمی دونم چیکار کنم؟


دوست عزیز ببخشید من چندتاا سوال از محضرتون داشتم:
1-من از مثالهایی که برای دانلود گذاشته بودید استفاده کردم(وی بی دات نت):تو فرم فشرده سازی اطلاعات اولا که دکمه ای رو که برای انتخاب فایل برای فشرده سازی گذاشتید می زنم که فایل رو انتخاب کنم ولی بعد از زدن اکی مسیر فایل رو تو تکست باکس قرار نمیده؟
2-توی این فرم دکمه ای برای اینکه بخوایم مسیری رو برای ذخیره ی فایل فشرده انتخاب کنیم نذاشتید؟
3- حالا همه ی اینها به کنار:من یه مسیری رو خودم تو تکست باکسها از تو سیستمم قرار میدم ولی بعد از زدن دکمه زیپ ایت این پیغام رو مید: exception while zipping:bad directory.در حالیکه من هر مسیری که میدم همین خطارو میگیره.لطفا راهنماییم کنید.

----------


## mahbobehshab

> دوست عزیز ببخشید من چندتاا سوال از محضرتون داشتم:
> 1-من از مثالهایی که برای دانلود گذاشته بودید استفاده کردم(وی بی دات نت):تو فرم فشرده سازی اطلاعات اولا که دکمه ای رو که برای انتخاب فایل برای فشرده سازی گذاشتید می زنم که فایل رو انتخاب کنم ولی بعد از زدن اکی مسیر فایل رو تو تکست باکس قرار نمیده؟
> 2-توی این فرم دکمه ای برای اینکه بخوایم مسیری رو برای ذخیره ی فایل فشرده انتخاب کنیم نذاشتید؟
> 3- حالا همه ی اینها به کنار:من یه مسیری رو خودم تو تکست باکسها از تو سیستمم قرار میدم ولی بعد از زدن دکمه زیپ ایت این پیغام رو مید: exception while zipping:bad directory.در حالیکه من هر مسیری که میدم همین خطارو میگیره.لطفا راهنماییم کنید.


خواهش ميكنم جواب سوالمو بدين.شما كه اين همه زحمت كشيديد اين رو هم جواب بديد.(سوال بالا)وقت چنداني ندارم.ممنون

----------


## histamin

ایا می شود بدون بار کردن zip محتوای ان را خواند؟ با تشکر

----------


## jejoan

سلام خیلی عالی بود فقط برای برعکسش چکارکنم.(تبدیل zip به پوشه عادی)

----------


## bahman1235

از تون تشكر ميشود اگر سورس همين برنامه را در c  داريد براي من بفرستيد

----------


## Alirezanet

سلام متاسفانه الان دسترسی به سورس مربوط به c ندارم ولی میتونید فایل اصلیش رو که توی پست 1 گذاشتم دانلود کنید . 1 فایل help داره که توش نمونه کد ها هست .
موفق باشید

----------


## حدیث کلانتری

اگه میشه به زبان C++‎‎ هم بزارید پروژه ی استادمانه گفته برنامه zip و unzip فایل های پیاده سازی کنیم فقط چند روز دیگه برای ارائش وقت دارم توخیلی سایت ها گشتم ولی خیلی گنگ بودن منم تازه کارم زیاد سردر نیاوردم یکم راهنماییم کنید خیلی دنبال اینجور مطلبی میگشتم اگه بزارید واقعا ممنون میشم :لبخند:

----------


## حدیث کلانتری

خواهش میکنم اگه امکانش براتان هست برنامه فشرده سازی (zip و unzip ) با هافمن را برایم بگذارید یا به زبان C++‎ یا جاوا خیلی ممنون میشم

----------


## mahdiaspx

سلام من توی سی شارپ و البته تحت وب کد زیر و نوشتم .
 using (ZipFile zip = new ZipFile())
        {
            zip.AddFile("SaateKari.pdf");
            zip.AddFile("Vazayef.pdf");
            zip.Save("~/AttachmentFile.zip");
        }

و خطای زیر و میده 

*Could not find a part of the path 'C:\Program Files  (x86)\Common Files\Microsoft  Shared\DevServer\10.0\~\DotNetZip-oybf00ig.tmp'.*

----------


## ISJ_PRG

> این کتابخانه به صورت متن باز و همراه با مثال ها و مستندات مربوطه از *اینجا* قابل دریافت می باشد.


کدوماشونو دانلود کنم؟

----------


## Alirezanet

ورژن 1.9 این برنامه کتابخانه خیلی قوی تر از قبل شده ... میتونید از اینجا دریافت کنید و یا پست اول !



> خواهش میکنم اگه امکانش براتان هست برنامه فشرده سازی (zip و unzip ) با هافمن را برایم بگذارید یا به زبان C++‎‎‎‎ یا جاوا خیلی ممنون میشم


من در مورد هافمن اطلاعات خاصی ندارم و این تاپیک مربوط به این کتابخانه است.




> اگه میشه به زبان C++‎‎‎‎‎ هم بزارید پروژه ی استادمانه گفته برنامه zip و unzip فایل های پیاده سازی کنیم فقط چند روز دیگه برای ارائش وقت دارم توخیلی سایت ها گشتم ولی خیلی گنگ بودن منم تازه کارم زیاد سردر نیاوردم یکم راهنماییم کنید خیلی دنبال اینجور مطلبی میگشتم اگه بزارید واقعا ممنون میشم


در پست بعدی به زبان C++‎‎‎/ClI نحوه استفاده اون رو قرار میدم . 




> کدوماشونو دانلود کنم؟


لینک هم در پست اول و هم در همین پست موجود هست.




> سلام من توی سی شارپ و البته تحت وب کد زیر و نوشتم .
>  using (ZipFile zip = new ZipFile())
>         {
>             zip.AddFile("SaateKari.pdf");
>             zip.AddFile("Vazayef.pdf");
>             zip.Save("~/AttachmentFile.zip");
>         }
> 
> و خطای زیر و میده 
> ...


این خطا مربوط به این هستش که فایل مورد نظر شما توی مسیر پروژه قرار نداره یا اسمشو اشتباه وارد کردید.
موفق باشید

----------


## Alirezanet

نحوه استفاده به زبان C++‎ 

*CopyCreate a Zip archive - destructor*



    using namespace System;
 using namespace Ionic::Zip;

 int main(array<System::String ^> ^args)
 {
     Console::WriteLine(L"Hello World");

     ZipFile ^ zip;
     try
   {
        zip = gcnew ZipFile();
        zip->AddEntry("Readme.txt", "This is the content for the Readme.txt entry.");
        zip-&gtAddFile("CreateZipFile.cpp");
        zip->Save("test.zip");
    }
    finally
    {
        zip->~ZipFile();
    }

    Console::WriteLine(L"Press <ENTER> to quit.");
    Console::ReadLine();
    return 0;
}


*Create a Zip archive - delete*


using namespace System;
using namespace Ionic::Zip;

int main(array<System::String ^> ^args)
{
    Console::WriteLine(L"Hello World");

    ZipFile ^ zip;
    try
    {
        zip = gcnew ZipFile();
        zip->AddEntry("Readme.txt", "This is the content for the Readme.txt entry.");
        zip-&gtAddFile("CreateZipFile.cpp");
        zip->Save("test.zip");
    }
    finally
    {
        delete zip;
    }

    Console::WriteLine(L"Press <ENTER> to quit.");
    Console::ReadLine();
    return 0;
}

*Create a zip file using AES encryption*


#include "stdafx.h"

using namespace System;
using namespace Ionic::Zip;

int main(array<System::String ^> ^args)
{
    Console::WriteLine(L"Hello World");

    ZipFile ^ zip;
    try
    {
        zip = gcnew ZipFile();
        zip->Password = verySecret;
        zip->Encryption = EncryptionAlgorithm::WinZipAes128;
        zip->AddEntry("Readme.txt", "This is the content for the Readme.txt entry.");
        zip->AddFile("Data.csv");
        zip->Save("test.zip");
    }
    finally
    {
        zip->~ZipFile();
    }

    Console::WriteLine(L"Press <ENTER> to quit.");
    Console::ReadLine();
    return 0;
}

*Use a SaveProgress event from C++‎*


 #include "stdafx.h"

 using namespace System;
 using namespace System::IO;
 using namespace Ionic::Zip;


 public ref class DnzHelloCppCli
 {

 private:
     bool justHadByteUpdate;

 public:
     DnzHelloCppCli()
         {
         }

 public:
     void Run()
         {
             Console::WriteLine(L"Hello World");
             Console::WriteLine("Using DotNetZip version {0}", ZipFile::LibraryVersion);
             array<String^>^ filesToAdd = System::IO::Directory::GetFiles(".", "*.cpp");

             ZipFile ^ zip;
            try
            {
                zip = gcnew ZipFile();
                zip->Password = "Harbinger";
                zip->Encryption = EncryptionAlgorithm::WinZipAes128;
                zip->SaveProgress += gcnew EventHandler<SaveProgressEventArgs^>(this, &DnzHelloCppCli::SaveProgress);
                zip->AddEntry("Readme.txt", "This is the content for the Readme.txt entry.");
                zip->AddFiles(filesToAdd, "files");
                zip->Save("MyArchive.zip");
            }
            finally
            {
                zip->~ZipFile();
            }

            Console::WriteLine(L"Press <ENTER> to quit.");
            Console::ReadLine();
            return;
        }

public:
    void SaveProgress(Object^ sender, SaveProgressEventArgs^ e)
        {
            switch (e->EventType)
            {
                case ZipProgressEventType::Saving_Started:
                {
                    Console::WriteLine("Saving: {0}", e->ArchiveName);
                    break;
                }
                case ZipProgressEventType::Saving_BeforeWriteEntry:
                {
                    if (this->justHadByteUpdate)
                    {
                        Console::WriteLine();
                    }
                    Console::WriteLine("  Writing: {0} ({1}/{2})",
                                       e->CurrentEntry->FileName,
                                       (e->EntriesSaved + 1),
                                       e->EntriesTotal);
                    this->justHadByteUpdate = false;
                    break;
                }
                case ZipProgressEventType::Saving_AfterWriteEntry:
                {
                    if (e->CurrentEntry->InputStreamWasJitProvided)
                    {
                        e->CurrentEntry->InputStream->Close();
                        e->CurrentEntry->InputStream = nullptr;
                    }
                    break;
                }
                case ZipProgressEventType::Saving_Completed:
                 {
                     this->justHadByteUpdate = false;
                     Console::WriteLine();
                     Console::WriteLine("Done: {0}", e->ArchiveName);
                     break;
                 }
                 case ZipProgressEventType::Saving_EntryBytesRead:
                 {
                     if (this->justHadByteUpdate)
                     {
                         Console::SetCursorPosition(0, Console::CursorTop);
                     }
                     Console::Write("     {0}/{1} ({2:N0}%)",
                                    e->BytesTransferred,
                                    e->TotalBytesToTransfer,
                                    (((double) e->BytesTransferred) / (0.01 * e->TotalBytesToTransfer)));
                     this->justHadByteUpdate = true;
                     break;
                 }
             }
        }

};


int main(array<System::String ^> ^args)
{
    try
    {
        DnzHelloCppCli^ me = gcnew DnzHelloCppCli();
        me->Run();
    }
    catch (Exception^ ex1)
    {
        Console::Error->WriteLine(String::Concat("exception: ", ex1));
    }
    return 0;
}

موفق باشید

----------


## wacker_sh

داداششششششششششششش دمتتتتتتتتتتتتتتتتتتتتتتت  تت گرمممممممممممممممممممممم عالیییییییییییییییییییییی  ییییییی بوووووووووووووووووووووووو  وود

----------


## fmka2f

سلام ايا ميشه يک فايل زيپ رو همزمان با اپلود شدن رو سرور اکسترکت کرد؟ميشه يک نمونه کد سي شارپ براي اينکار بذاريد؟

----------


## Alirezanet

> سلام ايا ميشه يک فايل زيپ رو همزمان با اپلود شدن رو سرور اکسترکت کرد؟ميشه يک نمونه کد سي شارپ براي اينکار بذاريد؟


امکان انجام این کار به صورت همزمان فکر نمیکنم وجود داشته باشه . البته طبق فرضیه برنامه نویس ها هیچ چیز غیر ممکن نیست ولی لااقل من نمونه کدی در این زمینه دراختیار ندارم تا بتونم کمکتون کنم . اگر سایر دوستان این کار رو قبلا انجام دادند نمونه کد قرار بدن تا ما هم استفاده کنیم . 
موفق باشید

----------


## fmka2f

> امکان انجام این کار به صورت همزمان فکر نمیکنم وجود داشته باشه . البته طبق فرضیه برنامه نویس ها هیچ چیز غیر ممکن نیست ولی لااقل من نمونه کدی در این زمینه دراختیار ندارم تا بتونم کمکتون کنم . اگر سایر دوستان این کار رو قبلا انجام دادند نمونه کد قرار بدن تا ما هم استفاده کنیم . 
> موفق باشید


 ممنون از جوابتون
حالا که همزمان نميشه ميشه يک کد سي شارپ براي اکسترکت يک فايل قرار بديد لطفا

----------


## آریوس_1985

سلام. يكبار يه نفر به مشكل فايل هاي فارسي اشاره كرد كه شما هم يك سمپل گذاشتين. من هم مشكل اون دوستمونو دارم و البته بايد اضافه كنم با Winrar اين مشكل وجود داره.وگرنه با ALzip هيچ مشكلي نيست. سمپل شما هم با Winrar مشكل داره.شما اطلاعي در اين زمينه داري؟؟

----------


## Alirezanet

> سلام. يكبار يه نفر به مشكل فايل هاي فارسي اشاره كرد كه شما هم يك سمپل گذاشتين. من هم مشكل اون دوستمونو دارم و البته بايد اضافه كنم با Winrar اين مشكل وجود داره.وگرنه با ALzip هيچ مشكلي نيست. سمپل شما هم با Winrar مشكل داره.شما اطلاعي در اين زمينه داري؟؟


دقیق حضور ذهن ندارم که مشکلی با winrar داشت این کامپوننت یا نه,  ولی بعید هم نیست که نتونید فایل های rar رو با استفاده ار این کتابخانه مدیریت کنید. winrar از استانداردهای کلی zip استفاده نمیکنه و به صورت خصوصی کار میکنه به همین دلیل اکثر نرم افزار های فشرده سازی از فرمت های rar پشتیبانی نمیکنند.

----------


## mmm123

:قلب:  :تشویق:  :لبخند گشاده!:  :لبخند:

----------


## Hossis

سلام 
کدهای بالا قابل خواندن نیست
من می خوام یک پوشه رو فشرده کنم به طوری که خود پوشه با تمام فایلها و زیرشاخه هاش توی فایل فشرده باشند
اگر میشه یک مثال بزنید

----------


## Hossis

> سلام 
> کدهای بالا قابل خواندن نیست
> من می خوام یک پوشه رو فشرده کنم به طوری که خود پوشه با تمام فایلها و زیرشاخه هاش توی فایل فشرده باشند
> اگر میشه یک مثال بزنید


خودم درست کردم

----------


## -p.l.s-

برادر اگه میشه برای اکسترکت با پسورد هم یه مثال تو C#‎ بزن همه رو گفتی جز اون
دمتم گرم تا اینجا کلی کارم راه افتاده

----------


## M_Shams

با سلام و تشکر از کدای خوبتون . فقط یه چیزی یه فایل زیپ  شده رو بخوایم از حالت زیپ درباریم باید چه کدی بزنیم ؟ ممنون میشم اگه کدشو بذارید .با تشکر

----------


## Alirezanet

سلام extract توی نمونه کد ها هست : 

لینک
Extract items from a zip file:
Extract all entries, and set the StatusMessageTextWriter so that verbose messages are generated:
Extract entries using a password:

----------


## mohsenone

با سلام
خیلی ممنون از شما بابت این کلاس
یه سوال داشتم
من میخوام یه سری فایل رو از روی سرور زیپ کنم و بدون اینکه فایل زیپ روی سرور ذخیره بشه فرستاده بشه طرف کاربر
این کلاس میتونه این کار رو انجام بده؟

----------


## SajjadKhati

*سلام
آقا من متوجه نشدم ، این الان فایل rar هم میتونه اکسترکت کنه؟
*

----------


## houmana

> اگر کسی مثال برای زبان های دیگه برنامه نویسی هم احتیاج داشت بگه براش بزارم  : 
> C#‎‎‎
> Vb.Net
> ASP.NET
> Powershell
> Com, ASP,PHP,VB6,Java
> C++‎‎‎/CLI
> 
> موفق باشین !!



دوست عزیز لطفا به من کمک کن من زبان vb6 کار می کنم ولی اصلا نتونستم کار با zip رو پیدا کنم لطفا کمکم کن

----------


## ROSTAM2

> دوست عزیز لطفا به من کمک کن من زبان vb6 کار می کنم ولی اصلا نتونستم کار با zip رو پیدا کنم لطفا کمکم کن


*Data Compression at 148 MByte/s with VB6**Zipping files using the free Info-Zip Zip DLL* Zip and Unzip Using VB5 or VB6

----------

