منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : أفضل مثال في عمل النسخة الاحتياطية باقي له خطوة بس ويكتمل
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
أفضل مثال في عمل النسخة الاحتياطية باقي له خطوة بس ويكتمل
  وباذن الله اذا اكتمل وأضيف له بعض الشروط  عشان لا تحصل فيه أي تعارضات 
زي شرط اذا كانت اللسته فاضية زي مثلا انشاء المجلد اذا لم يكن موجود هذي سهلة اسويها باذن الله بعدين 
 يكون في قسم الأمثلة بعد إذن الادارة طبعا 







1- ابغا دمج الزرين انشاء نسخة مع الضغط بحيث
 يسوي نسخة ويضغطها zip


2- والاستعادة مع فك الضغط تعني اضغط على النسخة في اللست بوكس 
يقوم بفك الضغط unzip ويستعيدها في مفس مجلدا البرنامج 



مشكلتي في أن انشاء النسخة في زر والضغط zip في زر اخر 

وكذلك الاستعادة في زر وفك الضغط في زر اخر 



لاني رابطها باختيار المستخدم للقاعدة من اللست بوكس 



وشكرا
منتظر التعديل ع المرفق
تفضل هذا الكود الخاص بالزرين النسخ الاحتياطي + ضغط الملف و زر الاستعادة مع فك الضغط وحذف ملف قاعدة البيانات القديمة ووضع القاعدة المستعادة مكانها .
ملاحظة : تم الاستغناء عن الليست بوكس ووضع كود اوبن فايل دايلوغ للاستعادة .
موفق انشاء الله .

PHP كود :
   Private Sub BtnRestore_Click(sender As ObjectAs EventArgsHandles BtnRestore.Click
        If MsgBox
("هل تريد عمل نسخة احتياطية قبل عملية الاستعادة"MsgBoxStyle.YesNo MsgBoxStyle.MsgBoxRight MsgBoxStyle.MsgBoxRtlReading"استعادة نسخة احتياطية") = MsgBoxResult.Yes Then
            If Label1
.Text.Length 0 Then
                Button1
.PerformClick()
 
           End If
 
           BtnBackup.PerformClick()
 
       End If

 
       Dim data As String "data11.mdb"
 
       Dim mdbnew As String ""
 
       If File.Exists(dataThen
            File
.Delete(data)
 
       End If
 
       Dim opfd As New OpenFileDialog
        opfd
.Filter "Zip File *.Zip|*.Zip"
 
       If opfd.ShowDialog System.Windows.Forms.DialogResult.OK Then
            Using zip 
As ZipFile ZipFile.Read(opfd.FileName)
 
               zip.ExtractAll(Application.StartupPath'zip_entry.Extract'
 
           End Using
            mdbnew 
opfd.SafeFileName
            mdbnew 
mdbnew.Replace("zip""Mol")
 
           My.Computer.FileSystem.RenameFile(Application.StartupPath "\" & mdbnew, "data11.mdb")
        End If
        MessageBox.Show("
تم إستعادة النسخة الاحتياطية  بنجاح", "تم", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End Sub
    Private Sub BtnBackup_Click(sender As Object, e As EventArgs) Handles BtnBackup.Click
        If IO.Directory.Exists(Label1.Text + "
\data11.mdb") = False Then
            IO.Directory.CreateDirectory(Label1.Text)
        End If
        If IO.File.Exists(Application.StartupPath & "
\Compact_data11.mdb") Then
            IO.File.Delete(Application.StartupPath & "
\Compact_data11.mdb")
        End If
        Dim Engine
        Engine = CreateObject("
JRO.JetEngine")
        Engine.CompactDatabase("
provider=microsoft.Jet.oledb.4.0;data source=" & Application.StartupPath & "\data11.mdb;user id=admin;jet oledb:database password=343282",
                               "
provider=microsoft.Jet.oledb.4.0;data source=" & Application.StartupPath & "\Compact_data11.mdb;user id=admin;jet oledb:database password=343282")
        Dim DBFilename, NewFileName As String
        DBFilename = Application.StartupPath & "
\Compact_data11.mdb"
        NewFileName = Label1.Text + "
\data11.mdb"
        NewFileName = "
data11" & Now.ToString("@yyyy-MM-dd@HH-mm-ss") & ".Mol"
        NewFileName = Label1.Text + "
\data11" & Now.ToString("(yyyy-MM-dd) (HH-mm-ss)") & ".Mol"
        Dim sr As New IO.FileStream(DBFilename, IO.FileMode.Open) 'source file'
        Dim sw As New IO.FileStream(NewFileName, IO.FileMode.Create) 'target file, defaults overwrite'
        Dim len As Long = sr.Length - 1
        ProgressBar1.Visible = True
        For i As Long = 0 To len
            sw.WriteByte(sr.ReadByte)
            If i Mod 1000 = 0 Then
                ProgressBar1.Value = i * 100 / len
                Application.DoEvents()
                Label6.Text = ProgressBar1.Value & "
تمّت عمليّة ضغط قاعدة البيانات "
            End If
        Next
        ProgressBar1.Value = 0
        ProgressBar1.Visible = False
        sr.Close()
        ' كود معرفة حجم قاعدة البيانات بعد ضغطها'
        Dim sc As New IO.FileStream(Application.StartupPath & "
\data11.mdb", FileMode.Open)
        Dim x As String
        x = sc.Length / 1024
        sc.Close()
        'كود حذف قاعدة البيانات القديمة'
        IO.File.Delete(Application.StartupPath & "
\data11.mdb")
        'كود اعادة تسمية قاعدة البيانات التي تم ضغطها واصلاحها'
        My.Computer.FileSystem.RenameFile(Application.StartupPath & "
\Compact_data11.mdb", "data11.mdb")
        Label5.Text = x & " 
 " & " ك.ب "
        Label8.Text = sw.Length / 1024 & " 
ك.ب "
        Label6.Text = ""
        Label7.Text = NewFileName
        Label2.Text = Now.ToString("
(yyyy-MM-dd) (H H-mm-ss)")
        Dim Open As New OpenFileDialog
        Dim dir As New DirectoryInfo(Label1.Text)
        Control.CheckForIllegalCrossThreadCalls = False
        If b.IsBusy = False Then
            b.RunWorkerAsync()
        End If
        Using zip As ZipFile = New ZipFile(Label1.Text & "
\data11" & Now.ToString("(yyyy-MM-dd) (HH-mm-ss)") & ".zip")
            ' Add the file to the Zip archive's root folder.'
            zip.AddFile(NewFileName, "")
            ' Save the Zip file.
            zip.Save()
        End Using
        MsgBox("
تم ضغط واصلاح ونسخ قاعدة البيانات بنجاح " & vbCrLf & vbCrLf & NewFileName & "   مكان نسخ القاعدة" & vbCrLf & "حجم قاعدة البيانات قبل الضغط  " & x & " ك.ب " & vbCrLf & "حجم قاعدة البيانات بعد الضغط   " & sw.Length / 1024 & " ك.ب ", 64 + MsgBoxStyle.MsgBoxRight + MsgBoxStyle.MsgBoxRtlReading, "النّسخ الإحتياطي")
        sr.Close()
        sw.Close()
        System.IO.File.Delete(NewFileName)
    End Sub 
وضعت بعض التعديلات البسيطة على الملف امل ان تعجبك .

[attachment=25309]
-
[attachment=25310]
-
[attachment=25311]
-
[attachment=25312]
-
[attachment=25313]
-
[attachment=25314]
-
[attachment=25315]

BackupAndCompactDatabase.zip
أبغا أقلك شكرا والله مستحي 


لأن المجهود أكثر بكثر من ان توفيه كلمة شكراً 

ولكن ما فيه غيرها فألف مليار شكر 

وياليت تضمه باسمك لقائمة الأمثلة الجاهزة 

لأنه عمل جبار لا يوجد مثيل له في النسخة الاحتياطية إلا المنتدى القديم 

اعجبتني بس أعجبتني وأعجبتني واعجبتني 

وجعلها الله في ميزان حسناتك

أكرر شكري وتقديري لك 

فين ايقونة تمت الاجابة
الحمد الله و الشكر الله رب العالمين موفق انشاء الله .
السادة عندي فيجوال 2008 وبالتالي اقوم بعمل مشروع جديد ثم انسخ الفورمات الي المشروع الجديد واجهتني مشكلة zip كيف اضيف هذة المكتبة او احل هذه المشكلة
اضغط بالزر اليمين على المشروع ثم اختر خصائص و من خصائص اختر References ثم اختر Add وحدد مكان المكتبة ثم موافق فقط لاغير .
اضيف المكتبة
ولا يزال الخطا
اعمل علي نظام 7
vb 2008
ما لحل
علما بان الموضوع
هام جدا
اختر الاداة الموجودة بالمجلد netstandard2.0 و اعد المحاولة المجلد netstandard2.0 موجود بالمجلد packages بجانب مجلد البرنامج .
الصفحات : 1 2