اعمل فورم لديك و اضف له كما في الصورة المرفقة
الان تابع معي عبر الاكواد
استورد المراجع التالية
و كذلك استورد المرجع System.IO.Compression.FileSystem الى قائمة المراجع في Solution Explorer و ليس في محرر الكود
عرف المتغير التالي في اعلى الفورم
سنعمل على وظيفة مشتركة يتسخدمها اكثر من زر و هي تعود بمسار المجلد المحدد
الان الى اكود الازرار
الاجراء اسفل الكود
الطريقة تعمل وفق ما طلبت تقوم بضغط مجلد بكل ما يحتويه الى المكان المحدد و اعطائه اللاحقة Dll , و اعادة الفك في المسار المحدد مع امكانية الحذف
بالتوفيق اخي
الان تابع معي عبر الاكواد
استورد المراجع التالية
PHP كود :
Imports System.IO
Imports System.IO.Compression
و كذلك استورد المرجع System.IO.Compression.FileSystem الى قائمة المراجع في Solution Explorer و ليس في محرر الكود
عرف المتغير التالي في اعلى الفورم
PHP كود :
Dim FolderName As String
سنعمل على وظيفة مشتركة يتسخدمها اكثر من زر و هي تعود بمسار المجلد المحدد
PHP كود :
Private Function GetOpenFolder(sender As Object) As String
Dim Ofd As New FolderBrowserDialog
With Ofd
.SelectedPath = Environment.SpecialFolder.Recent
.Description = "Select the source directory"
If .ShowDialog = DialogResult.OK Then
Dim btn As Button = DirectCast(sender, Button)
If btn.Name = "FolderPath" Then
FolderName = System.IO.Path.GetFileName(Ofd.SelectedPath)
End If
Return .SelectedPath
End If
End With
Return ""
End Function
الان الى اكود الازرار
PHP كود :
Private Sub FolderPath_Click(sender As Object, e As EventArgs) Handles FolderPath.Click
TextBox1.Text = GetOpenFolder(FolderPath)
End Sub
PHP كود :
Private Sub BtnSave_Click(sender As Object, e As EventArgs) Handles BtnSave.Click
If FolderName <> "" Then
TextBox2.Text = GetOpenFolder(BtnSave) & "\" & FolderName & ".dll"
End If
End Sub
الاجراء اسفل الكود
PHP كود :
Private Sub BtnCompress_Click(sender As Object, e As EventArgs) Handles BtnCompress.Click
CompressionFolder()
End Sub
PHP كود :
Private Sub CompressionFolder()
Try
Dim startPath As String = TextBox1.Text
Dim zipPath As String = TextBox2.Text
ZipFile.CreateFromDirectory(startPath, zipPath)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
PHP كود :
Private Sub Btn_selcompress_Click(sender As Object, e As EventArgs) Handles Btn_selcompress.Click
SelectZipFile()
End Sub
PHP كود :
Private Sub SelectZipFile()
Dim openFileDialog1 As OpenFileDialog = New OpenFileDialog
openFileDialog1.Filter = "Dll Files (*.dll)|*.dll"
openFileDialog1.FilterIndex = 1
openFileDialog1.RestoreDirectory = True
Dim UserClickedOK As Boolean = openFileDialog1.ShowDialog
If (UserClickedOK = True) Then
FolderName = System.IO.Path.GetFileName(openFileDialog1.FileName)
FolderName = FolderName.Substring(0, FolderName.Length - 4)
TextBox3.Text = openFileDialog1.FileName
End If
End Sub
PHP كود :
Private Sub Btn_ExFold_Click(sender As Object, e As EventArgs) Handles Btn_ExFold.Click
TextBox4.Text = GetOpenFolder(Btn_ExFold) & "\" & FolderName
End Sub
PHP كود :
Private Sub Btn_Exctract_Click(sender As Object, e As EventArgs) Handles Btn_Exctract.Click
'معالجة عملية الحذف
If CheckBox1.CheckState = CheckState.Checked Then
DeleteFilesFromFolder(TextBox4.Text)
End If
ExTractZipFile()
End Sub
PHP كود :
Sub DeleteFilesFromFolder(Folder As String)
If Directory.Exists(Folder) Then
For Each _file As String In Directory.GetFiles(Folder)
System.IO.File.Delete(_file)
Next
For Each _folder As String In Directory.GetDirectories(Folder)
DeleteFilesFromFolder(_folder)
Next
End If
End Sub
PHP كود :
Private Sub ExTractZipFile()
Try
Dim ZipFilePath As String = TextBox3.Text
Dim ExtactPath As String = TextBox4.Text
ZipFile.ExtractToDirectory(ZipFilePath, ExtactPath)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
الطريقة تعمل وفق ما طلبت تقوم بضغط مجلد بكل ما يحتويه الى المكان المحدد و اعطائه اللاحقة Dll , و اعادة الفك في المسار المحدد مع امكانية الحذف
بالتوفيق اخي
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال


