تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كود ظغط بكلمة سر
#1
السلام عليكم
احتاج كود ظغط الملفات بكلمة سر و كود  فك ضغطها عند الحاجة
حصلت على هذا الكود
كود :
 Using zip As New ZipFile
            zip.Password = "arab"
            zip.Encryption = EncryptionAlgorithm.WinZipAes256
            zip.AddDirectory("C:\folder")

            zip.Save("c:\save.zip")
        End Using
يقمو بالظغط من دون كلمة السر

وشكرا
الرد }}}
تم الشكر بواسطة:
#2
ارجو الافادة
الرد }}}
تم الشكر بواسطة:
#3
(25-02-17, 03:19 AM)khodor1985 كتب : السلام عليكم أخي العزيز ورحمة الله وبركاته
هل تقصد أنه عند الضغط على زر الضغط أو فك الضغط يظهر نافذة كلمة المرور قبل تنفيذ العملية

من الاحسن ان لا تظهر النافذة تتم العملية مباشرتا
الرد }}}
تم الشكر بواسطة:
#4
لا إلآه إلا الله محمد رسول الله
الرد }}}
تم الشكر بواسطة:
#5
(25-02-17, 06:38 PM)khodor1985 كتب : لا حول ولا قوة إلا بالله، إصبر حتى يمل الصبر منك

هههههههههههههههههه
  شكرا لك اخي ودمت لنا بصحة وعافيا
الرد }}}
تم الشكر بواسطة:
#6
انظر للمثال التالي:
PHP كود :
Imports System.ComponentModel
Imports System
.IO
Imports Ionic
.Zip
Public Class Form1
    Dim lst 
As New List(Of String)
 
   Dim ofd As OpenFileDialog
    Dim sfd 
As SaveFileDialog
    Dim zip_pass 
As String ""
 
   Private Sub p(ByVal i As Integer)
 
       If ProgressBar1.InvokeRequired Then
            ProgressBar1
.Invoke(New Action(Of Integer)(AddressOf p), i)
 
       Else
            ProgressBar1
.Value i
        End 
If
 
   End Sub

    Private Sub Button1_Click
(sender As ObjectAs EventArgsHandles Button1.Click

        zip_pass 
InputBox("أكتب كلمة مرور لقفل الملف")
 
       lst.Clear()
 
       ofd = New OpenFileDialog
        ofd
.Multiselect True
        If ofd
.ShowDialog DialogResult.OK Then
            lst
.AddRange(ofd.FileNames)
 
       End If
 
       If lst.Count 0 Then
            Button1
.Enabled False
            Button2
.Enabled False

            ProgressBar1
.Maximum lst.Count 1
            If b1
.IsBusy False Then b1.RunWorkerAsync()
 
       End If
 
   End Sub
    Dim zip 
As ZipFile
    Private Sub b1_DoWork
(sender As ObjectAs System.ComponentModel.DoWorkEventArgsHandles b1.DoWork
        zip 
= New ZipFile
        zip
.Password zip_pass
        For a 
0 To lst.Count 1
            b1
.ReportProgress(a)
 
           zip.AddFile(lst(a), "")
 
       Next
    End Sub

    Private Sub b1_ProgressChanged
(sender As ObjectAs ProgressChangedEventArgsHandles b1.ProgressChanged
        p
(e.ProgressPercentage)
 
   End Sub

    Private Sub b1_RunWorkerCompleted
(sender As ObjectAs RunWorkerCompletedEventArgsHandles b1.RunWorkerCompleted
        If zip
.Count 0 Then
            zip
.Save(IO.Path.GetFileNameWithoutExtension(lst(lst.Count 1)) & ".zip")
 
       End If
 
       Button1.Enabled True
        Button2
.Enabled True

    End Sub
    Dim zipfilename 
As String ""

 
   Private Sub smax(ByVal i As Integer)
 
       If ProgressBar1.InvokeRequired Then
            ProgressBar1
.Invoke(New Action(Of Integer)(AddressOf smax), i)
 
       Else
            ProgressBar1
.Maximum i
        End 
If
 
   End Sub
    Private Sub Button2_Click
(sender As ObjectAs EventArgsHandles Button2.Click
        zip_pass 
InputBox("أكتب كلمة مرور لالغاء قفل الملف")

 
       ofd = New OpenFileDialog
        ofd
.Filter "Zip Files(*.zip)|*.zip"
 
       If ofd.ShowDialog DialogResult.OK Then
            zipfilename 
ofd.FileName
            Button2
.Enabled False
            Button1
.Enabled False

            If b2
.IsBusy False Then b2.RunWorkerAsync()
 
       End If
 
   End Sub
    Dim zip2 
As ZipFile



    Private Sub b2_DoWork
(sender As ObjectAs DoWorkEventArgsHandles b2.DoWork

        zip2 
ZipFile.Read(zipfilename)
 
       zip2.Password zip_pass

        smax
((zip2.Count) - 1)
 
       Dim m As Integer 0
        For Each en 
As ZipEntry In zip2
            b2
.ReportProgress(m)
 
           en.Extract()
 
           m += 1
        Next


    End Sub

    Private Sub b2_RunWorkerCompleted
(sender As ObjectAs RunWorkerCompletedEventArgsHandles b2.RunWorkerCompleted


        Button2
.Enabled True
        Button1
.Enabled True

    End Sub

    Private Sub b2_ProgressChanged
(sender As ObjectAs ProgressChangedEventArgsHandles b2.ProgressChanged
        p
(e.ProgressPercentage)
 
   End Sub
End 
Class 
اطلع على هذه المشاركة:#5


بالنسبة لالغاء النافذة فتستطيع تمرير كلمة مرور ثابتة من دون inputbox


الملفات المرفقة
.zip   For_adel27.zip (الحجم : 131.91 ك ب / التحميلات : 41)
الرد }}}
تم الشكر بواسطة: bidaya
#7
(25-02-17, 07:49 PM)سعود كتب : انظر للمثال التالي:
PHP كود :
Imports System.ComponentModel
Imports System
.IO
Imports Ionic
.Zip
Public Class Form1
    Dim lst 
As New List(Of String)
 
   Dim ofd As OpenFileDialog
    Dim sfd 
As SaveFileDialog
    Dim zip_pass 
As String ""
 
   Private Sub p(ByVal i As Integer)
 
       If ProgressBar1.InvokeRequired Then
            ProgressBar1
.Invoke(New Action(Of Integer)(AddressOf p), i)
 
       Else
            ProgressBar1
.Value i
        End 
If
 
   End Sub

    Private Sub Button1_Click
(sender As ObjectAs EventArgsHandles Button1.Click

        zip_pass 
InputBox("أكتب كلمة مرور لقفل الملف")
 
       lst.Clear()
 
       ofd = New OpenFileDialog
        ofd
.Multiselect True
        If ofd
.ShowDialog DialogResult.OK Then
            lst
.AddRange(ofd.FileNames)
 
       End If
 
       If lst.Count 0 Then
            Button1
.Enabled False
            Button2
.Enabled False

            ProgressBar1
.Maximum lst.Count 1
            If b1
.IsBusy False Then b1.RunWorkerAsync()
 
       End If
 
   End Sub
    Dim zip 
As ZipFile
    Private Sub b1_DoWork
(sender As ObjectAs System.ComponentModel.DoWorkEventArgsHandles b1.DoWork
        zip 
= New ZipFile
        zip
.Password zip_pass
        For a 
0 To lst.Count 1
            b1
.ReportProgress(a)
 
           zip.AddFile(lst(a), "")
 
       Next
    End Sub

    Private Sub b1_ProgressChanged
(sender As ObjectAs ProgressChangedEventArgsHandles b1.ProgressChanged
        p
(e.ProgressPercentage)
 
   End Sub

    Private Sub b1_RunWorkerCompleted
(sender As ObjectAs RunWorkerCompletedEventArgsHandles b1.RunWorkerCompleted
        If zip
.Count 0 Then
            zip
.Save(IO.Path.GetFileNameWithoutExtension(lst(lst.Count 1)) & ".zip")
 
       End If
 
       Button1.Enabled True
        Button2
.Enabled True

    End Sub
    Dim zipfilename 
As String ""

 
   Private Sub smax(ByVal i As Integer)
 
       If ProgressBar1.InvokeRequired Then
            ProgressBar1
.Invoke(New Action(Of Integer)(AddressOf smax), i)
 
       Else
            ProgressBar1
.Maximum i
        End 
If
 
   End Sub
    Private Sub Button2_Click
(sender As ObjectAs EventArgsHandles Button2.Click
        zip_pass 
InputBox("أكتب كلمة مرور لالغاء قفل الملف")

 
       ofd = New OpenFileDialog
        ofd
.Filter "Zip Files(*.zip)|*.zip"
 
       If ofd.ShowDialog DialogResult.OK Then
            zipfilename 
ofd.FileName
            Button2
.Enabled False
            Button1
.Enabled False

            If b2
.IsBusy False Then b2.RunWorkerAsync()
 
       End If
 
   End Sub
    Dim zip2 
As ZipFile



    Private Sub b2_DoWork
(sender As ObjectAs DoWorkEventArgsHandles b2.DoWork

        zip2 
ZipFile.Read(zipfilename)
 
       zip2.Password zip_pass

        smax
((zip2.Count) - 1)
 
       Dim m As Integer 0
        For Each en 
As ZipEntry In zip2
            b2
.ReportProgress(m)
 
           en.Extract()
 
           m += 1
        Next


    End Sub

    Private Sub b2_RunWorkerCompleted
(sender As ObjectAs RunWorkerCompletedEventArgsHandles b2.RunWorkerCompleted


        Button2
.Enabled True
        Button1
.Enabled True

    End Sub

    Private Sub b2_ProgressChanged
(sender As ObjectAs ProgressChangedEventArgsHandles b2.ProgressChanged
        p
(e.ProgressPercentage)
 
   End Sub
End 
Class 
اطلع على هذه المشاركة:#5


بالنسبة لالغاء النافذة فتستطيع تمرير كلمة مرور ثابتة من دون inputbox
شكرا لك
مثال جميل اخي
لكن المثال يظغط ملف وليس فولدر
وبما ان مسار الفولدر المراد ظغطه ثابت هل يمكن التخلي على ادات openfiledialog في زر الحفظ
وشكرا
الرد }}}
تم الشكر بواسطة:
#8
كل ماقلته ممكن اخي الكريم فقط حاول تعدل على المثال حتى تحقق المطلوب.
اما كونه يضغط ملفات فيمكنك التعديل ايضا فبدل zip.AddFile اكتب    
          
PHP كود :
zip.AddDirectory("C:\folder"
الرد }}}
تم الشكر بواسطة: bidaya
#9
(26-02-17, 04:31 AM)سعود كتب : كل ماقلته ممكن اخي الكريم فقط حاول تعدل على المثال حتى تحقق المطلوب.
اما كونه يضغط ملفات فيمكنك التعديل ايضا فبدل zip.AddFile اكتب    
          
PHP كود :
zip.AddDirectory("C:\folder"

تسلم يا غالي
الله يحفظك ساحاول التعديل عليه وان شاء الله اوصل للنتيجة
شكرا لك
الرد }}}
تم الشكر بواسطة:
#10
بعد التعديل عليه لم يعد يظيف كلمة السر
المثال مرفق بعد التعديل


الملفات المرفقة
.rar   For_adel27.rar (الحجم : 163.72 ك ب / التحميلات : 27)
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم