الاثنين، 12 سبتمبر 2011

إضافة عدد غير محدد من الملفات لكل شخص في قاعدة البيانات

أفضل وأسهل وأأمن وسيلة لخزن عدد غير محدد من الملفات (كتب أو صور أو ملفات مضغوطة)  لكل شخص في قاعدة البيانات دون التأثير على حجم قاعدة البيانات هي بتكوين ملف (folder) باسم كل الشخص في قاعدة البيانات يخزن في داخله ملفاته الشخصية .اي عند إضافة كل شخص جديد إلى قاعدة البيانات نضيف مرفقاته معه وسوف يكون  (folder) بأسمه يخزن ملفات هذا الشخص في داخله  وعندما نريد الوصول إلى هذه الملفات تكون الوسيلة سهلة مجرد نبحث عن ملفا داخل  (folder) الخاص به.
 فعلى سبيل المثال إذا أردنا تخزين ملفات جميع الأشخاص داخل (folder) اسمه (filesAdd) بمسار تشغيل 



البرنامج مثلا عند إضافة شخص اسمه حسين الربيعي سيكون  (folder) بأسمه و بشكل التالي

path= Application.StartupPath & "\filesAdd\" & "حسين الربيعي" & "\MURFACAT"




إي بمسار تشغيل البرنامج وداخل فولدر (filesAdd) كون فولدر اسمه حسين الربيعي وداخله فولدر اسمه (MURFACAT)  لخزن ملفاته فيكون شكل الملف بطريقة التالية


لاحظ مسار الملف أين كونه المعالج وبعده نضيف الملفات في داخله  عن طريق الكود
كما سنلاحظ في المثال التالي


خطوات الإضافة :  لنفرض أن اسم الشخص الذي نضيفه  موجود داخل TextBox1name.Text
1.     ندرج أداة  (CheckedListBox1) ونضيف زر نسمية اضافة ملفات نضيف عن طريقه مسار الملفات المرفقة 

داخل  (CheckedListBox1) بطريقة التالية

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If fDg.ShowDialog() = DialogResult.OK Then
CheckedListBox1.Items.Add(fDg.FileName)
End If
End Sub

2.     بعد عملية إضافة سجل  لكل شخص نستدعي الدالة التالية لكي تقوم بإضافة ملفاته المرفقة التي أضيف مساراتها 
إلى   (CheckedListBox1) داخل مجلد شخصي للشخص الذي نكونه  حديثا
()Sub savedMurfacatfile
On Error Resume Next
"path = Application.StartupPath & "\filesAdd\" & Trim(TextBox1name.Text) & "\MURFACAT
If My.Computer.FileSystem.DirectoryExists(path) = False Then
(My.Computer.FileSystem.CreateDirectory(path
End If
For i = 0 To CheckedListBox1.Items.Count - 1
CheckedListBox1.SelectedIndex = i
(Dim dnames As New System.IO.FileInfo(CheckedListBox1.SelectedItem 
(My.Computer.FileSystem.MoveFile(CheckedListBox1.SelectedItem, path & "\" & dnames.Name
Next
End Sub
الآن انتهينا من إضافة ملفات مرفقة لكل شخص بقي كيف نظهر هذه  الملفات إما المستخدم
3.     عند تصفح كل سجل نستدعي الدالة التالية لكي تقوم بإضافة ملفاته المرفقة إلى قائمته

Sub ADDhisMirfacattolist()
Try
Dim pathInputbox As String = Application.StartupPath & "\filesAdd\" & Trim(TextBox1name.Text) & "\MURFACAT"
Dim di As New System.IO.DirectoryInfo(pathInputbox)
NumberOfBook = 0
GroupBox5.Text = "(" & NumberOfBook & ")المرفقات"
CheckedListBox1.Items.Clear()
Dim f1 As FileInfo() = di.GetFiles()
For i As Integer = 0 To (f1.Length - 1)
NumberOfBook = NumberOfBook + 1
GroupBox5.Text = "(" & NumberOfBook & ")المرفقات"
CheckedListBox1.Items.Add(f1(i).Name)
Next
Catch ex As Exception
End Try
End Sub

4.     بقي زر لفتح الملف الذي يتم اختياره من قائمة ملفات الشخص ويكون كوده
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Try
Dim pathInputbox As String = Application.StartupPath & "\filesAdd\" & Trim(TextBox1name.Text) & "\MURFACAT"
Dim di As New System.IO.DirectoryInfo(pathInputbox)
Dim f1 As FileInfo() = di.GetFiles()
For j = 0 To CheckedListBox1.Items.Count - 1
If CheckedListBox1.GetItemChecked(j) = True Then
CheckedListBox1.SelectedIndex = j
For i As Integer = 0 To (f1.Length - 1)
If String.Equals(CheckedListBox1.SelectedItem.ToString(), f1(i).Name.ToString) Then
Process.Start(f1(i).FullName)
End If
Next
End If
Next
Catch ex As Exception
End Try
End Sub

حمل المثال من هنا

ليست هناك تعليقات: