# Native Code > برنامه نویسی در 6 VB > برنامه نویسی مرتبط با بازی و گرافیک در VB6 >  وین  زیپ

## a.adhami

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

----------


## Asemane Haftom

سلام  ، پس از انتخاب ردیف فایل shell32.dll با نام microsoft shell controls and automation در قسمت referenses  در منوی project 
زیر برنامه زیر را در سورس کپی کن و پس از فراخوانی آن و دادن مقدار به FolderName به جای نام پوشه و دادن مقدار به FileNameZip به جای نام فایل زیپ ، آن پوشه را زیپ کنی
(Sub Zip_All_Files_in_Folder(ByVal FolderName As String, ByVal FileNameZip As String
    Open FileNameZip For Output As #1
    Print #1, Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String(18, 0) Close #1
    Dim oApp As New Shell
    oApp.NameSpace(FileNameZip).CopyHere oApp.NameSpace(FolderName).Items
End Sub

----------


## a.adhami

مرسی ولی میشه یک پروژه بدین آخه کار نکرد یا توضیح بیشتر بدین

----------


## www.pc3enter.tk

باتشكر از شما اگر مي توانيد يك نمونه بگذاريد

----------


## محسن واژدی

سلام
با اجازه جناب Asemane Haftom، بعد از اضافه کردن کامپوننت "Microsoft Shell Controls And Automation" و قرار دادن تابع پست2 در برنامه با کدی مشابه زیر از آن استفاده میکنیم:
Private Sub Command1_Click()
    Zip_All_Files_in_Folder "D:\mydir", "d:\1.zip"
End Sub


موفق باشید

----------


## mohammadriano

سلام
خیلی ممنون بابت تابع
کامپوننت رو Add کردم اما
من به یک مشکل برخورد کردم
اگه ممکن هست راهنمایی کنید
WinZip.jpg
مشکل خط قرمز رنگ!
این هم همه کد :

Option Explicit

Sub Zip_All_Files_in_Folder(ByVal FolderName As String, ByVal FileNameZip As String)
Open FileNameZip For Output As #1
Print #1, Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String(18, 0) Close #1
Dim oApp As New Shell
oApp.NameSpace(FileNameZip).CopyHere oApp.NameSpace(FolderName).Items
End Sub

Private Sub Command_Click()
Zip_All_Files_in_Folder "J:\cd label", "C:\1.zip"
End Sub

----------


## butterfly8528

سلام .
مشكل قرار گرفتن دستور Close در انتهاي دستور Print بود .
Option Explicit
 
Sub Zip_All_Files_in_Folder(ByVal FolderName As String, ByVal FileNameZip As String)
  Open FileNameZip For Output As #1
   Print #1, Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String(18, 0)
  Close #1
  
  Dim oApp As New Shell
  oApp.NameSpace(FileNameZip).CopyHere oApp.NameSpace(FolderName).Items
End Sub
 
Private Sub Command_Click()
  Zip_All_Files_in_Folder "J:\cd label", "C:\1.zip"
End Sub

موفق باشيد .

----------


## meysam_mahshar

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

----------


## محسن واژدی

> با سلام
> این کد و تمامی کدهای بالا فقط هدر زیپ رو به فایل اضافه و اون رو با قالب زیپ ذخیره می کنند این به این معناست که فایل به هیچ وجه فشرده نمی شه


 سلام علیکم

احتمالا" هنوز کد را تست نکرده اید، این کد با استفاده از توابع داخلی کتابخانه Shell32 فولدر معرفی شده را در فایلی با فرمت zip فشرده می کند (البته قبلا تست شده)

موفق باشید

----------


## محسن واژدی

> سلام
> من کد پست بالا را کپی کردم ولی جواب نگرفتم، اگه میشه یه برنامه برا دانلود بزارید.


 سلام علیکم
ضمیمه زیر بررسی کنید

موفق باشید

----------


## saeedharati

سلام خسته نباشيد من نمونه رو تست كردم كار كرد آيا امكانش هست برعكسش رو بذاري كه بتونيم از حالت زيپ هم خارج كنيم ممنون

----------


## محسن واژدی

> سلام خسته نباشيد من نمونه رو تست كردم كار كرد آيا امكانش هست برعكسش رو بذاري كه بتونيم از حالت زيپ هم خارج كنيم ممنون


 سلام علیکم، ممنون 

دوباره نمونه ویرایش شده پست 11 را بررسی کنید 

موفق باشید

----------


## salamu

برای پسورد گذار ی روی فایل چه کار کنیم؟

----------

