24-01-25, 07:04 PM
و عليكم السلام و رحمة الله و بركاته
بحسب ما فهمت من سؤالك
يمكن تحسين الكود لجعل عملية اختيار الملفات وجلب أسمائها ومساراتها أكثر كفاءة وعملية. سأقوم أيضًا بإضافة جزء من الكود الذي يحفظ الملفات في مجلد MyFile الموجود داخل مجلد Debug مع حفظ المسار فقط في قاعدة البيانات.
الكود المحسّن:
بحسب ما فهمت من سؤالك
يمكن تحسين الكود لجعل عملية اختيار الملفات وجلب أسمائها ومساراتها أكثر كفاءة وعملية. سأقوم أيضًا بإضافة جزء من الكود الذي يحفظ الملفات في مجلد MyFile الموجود داخل مجلد Debug مع حفظ المسار فقط في قاعدة البيانات.
الكود المحسّن:
PHP كود :
Imports System.IO
Imports System.Data.SqlClient
Public Class Form1
' تعريف كائن OpenFileDialog
Private ofd As New OpenFileDialog()
Private Sub ButSearsh_Click(sender As Object, e As EventArgs) Handles ButSearsh.Click
' استدعاء طريقة اختيار الملفات
SelectAndProcessFiles()
End Sub
Private Sub SelectAndProcessFiles()
' إعداد الخصائص الأساسية لنافذة اختيار الملفات
ofd.Filter = "All Files (*.*)|*.*"
ofd.Multiselect = True
ofd.InitialDirectory = ""
' فتح نافذة اختيار الملفات
If ofd.ShowDialog() = DialogResult.OK Then
For Each filePath As String In ofd.FileNames
' استخراج اسم الملف بدون الامتداد
Dim fileName As String = Path.GetFileNameWithoutExtension(filePath)
' تحديد المسار الجديد لحفظ الملف في مجلد MyFile
Dim newFilePath As String = Path.Combine(Application.StartupPath, "MyFile", Path.GetFileName(filePath))
' إنشاء المجلد إذا لم يكن موجودًا
Dim directoryPath As String = Path.Combine(Application.StartupPath, "MyFile")
If Not Directory.Exists(directoryPath) Then
Directory.CreateDirectory(directoryPath)
End If
' نسخ الملف إلى المجلد الجديد
File.Copy(filePath, newFilePath, True)
' تحديث الحقول النصية
TextName.Text = fileName
TextPath.Text = newFilePath
' حفظ المسار فقط في قاعدة البيانات
SaveFilePathToDatabase(newFilePath)
Next
End If
End Sub
Private Sub SaveFilePathToDatabase(filePath As String)
' سلسلة الاتصال بقاعدة البيانات
Dim connectionString As String = "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Maylibrary;Integrated Security=True"
Using conn As New SqlConnection(connectionString)
Try
' فتح الاتصال
conn.Open()
' استعلام إدخال المسار
Dim query As String = "INSERT INTO Tab_Files (FilePath) VALUES (@FilePath)"
Using cmd As New SqlCommand(query, conn)
cmd.Parameters.AddWithValue("@FilePath", filePath)
cmd.ExecuteNonQuery()
End Using
Catch ex As Exception
MessageBox.Show("حدث خطأ أثناء حفظ المسار: " & ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Using
End Sub
End Class
