![]() |
|
لايمكن الوصول للملف لأنه قيد الاستخدام بواسطة عملية أخرى - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : لايمكن الوصول للملف لأنه قيد الاستخدام بواسطة عملية أخرى (/showthread.php?tid=50816) |
لايمكن الوصول للملف لأنه قيد الاستخدام بواسطة عملية أخرى - صالح عبدالله - 21-12-24 السلام عليكم ورحمة الله وبركاته ( آسف لأن تكرر في المنتدى قبل هذه المرة لكن لم أجد الحل ) لدي ملف يوجد به ملف PDF يتم حفظ الملف داخل قاعدة بيانات SQL ثم يتم بعد ذلك حذف المجلد كاملاً بمحتوياته وتتم هذه العملية بشكل جيد ولكن عندما أريد أن أعمل أي عملية أخرى يجب الخروج من البرنامج ثم الدخول له مرة أخرى وإلا سوف تحدث المشكلة الموجودة في الصورة حيث تقول ان الملف قيد الاستخدام من قبل عملية أخرى ( نفس الصورة الموجودة في الأسفل ) وقد استخدمت الكود التالي Dim sqlq As String = "insert into Documents_Table values(@Personal_Num,@Student_Name,@Mokhalafah_Pdf)"
Dim sqlcmd As New SqlCommand(sqlq, Sqlcon)
Dim fs As New FileStream("C:\aa_merge\Save.pdf", FileMode.Open, FileAccess.Read)
Dim br As New BinaryReader(fs)
Dim pdf1() As Byte = br.ReadBytes(br.BaseStream.Length)
sqlcmd.Parameters.Add(New SqlParameter("@Personal_Num", SqlDbType.NVarChar, 15) With {.Value = Form1.TextBox7.Text})
sqlcmd.Parameters.Add(New SqlParameter("@Student_Name", SqlDbType.NVarChar, 100) With {.Value = Form1.TextBox4.Text})
sqlcmd.Parameters.Add(New SqlParameter("@Mokhalafah_Pdf", SqlDbType.VarBinary)).Value = pdf1
Sqlcon.Open()
sqlcmd.ExecuteNonQuery()
Sqlcon.Close()
MsgBox(" تم الحفظ بنجاح ")
RE: لايمكن الوصول للملف لأنه قيد الاستخدام بواسطة عملية أخرى - aljzazy - 21-12-24 من الصورة التي أرفقتها، المشكلة تتعلق بخطأ من النوع كود : IOExceptionسبب المشكلة: هذا الخطأ يحدث عندما يتم:
الحل: 1. تأكد من تحرير الموارد: إذا كنت تستخدم كائنًا لفتح الملف مثل كود : FileStreamكود : StreamReaderمثال صحيح: vb نسخ الكود كود : Using fs As New FileStream("C:\aaa\save.pdf", FileMode.Open, FileAccess.Read)كود : Using2. التأكد من أن الملف ليس مفتوحًا في برامج أخرى:
3. فحص الكود المتعلق بحذف الملف أو المجلد: إذا كنت تحاول حذف الملف، تأكد من أن أي عملية أخرى عليه قد انتهت. مثال على حذف ملف بعد التأكد من عدم استخدامه: vb نسخ الكود كود : Try4. إضافة فحص للتأكد من عدم استخدام الملف: يمكنك التحقق مما إذا كان الملف قيد الاستخدام قبل العمل عليه: vb نسخ الكود كود : Function IsFileLocked(filePath As String) As Booleanvb نسخ الكود كود : If Not IsFileLocked("C:\aaa\save.pdf") Then5. استخدام كود : GC.Collectفي بعض الحالات، يمكن أن يساعد تنظيف الموارد غير المُدارة: vb نسخ الكود كود : GC.Collect()RE: لايمكن الوصول للملف لأنه قيد الاستخدام بواسطة عملية أخرى - صالح عبدالله - 21-12-24 السلام عليكم ورحمة الله وبركاته الشكر الجزيل لك الأخ aljzazy جاري تجربة الكود وهو ناجح إلى الآن بارك الله فيك وجعله في موازين حسناتك RE: لايمكن الوصول للملف لأنه قيد الاستخدام بواسطة عملية أخرى - صالح عبدالله - 24-12-24 الشكر الجزيل لك استاذي العزيز تم تجربة الكود بأكثر من طريقة ويعمل معي بأفضل مايكون وتعجز الكلمات عن شكرك بارك الله فيك |