منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
حذف الملفات في vb.net - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : حذف الملفات في vb.net (/showthread.php?tid=391)



حذف الملفات في vb.net - Mr.ILI - 04-10-13

السلام عليكم اخواني ...
حذف الملفات ... يستطيع الفجول بيسك حذف الملفات ولكن هناك من الملفات لايستطيع حذفها مثل System File وبعض الفيروسات تعمل في بيئة System فهل هذا الكود يفي في الغرض :
كود :
Kill("C:\Virus.exe")

او هذا :

كود :
My.Computer.FileSystem.DeleteFile("c:\virus.exe")

فهناك ملفات في System مثل ملفات Dll لايستطيع الفجول بيسك حذها او التعديل عليها ... فهل هناك طرق لعمل ذلك وشكرا
[/align]


RE: حذف الملفات في vb.net - ali.alfoly - 04-10-13

السلام عليكم ورحمة الله
بص هقلك حاجة
الفيجوال لايستطيع ذلك
لاكن هناك حيلة
تغير خاصية System للملف وجعلها ( نورمال عادى او عكسها System X System )
وبعد ذلك احذف الملف عادى

وهذا الكود باذن الله يفى بالغرض

PHP كود :
IO.File.SetAttributes("C:\Virus.exe"Xor 4' جعل الملف غير ادارى
        IO.File.Delete("C:\Virus.exe")  ' 
حذف الملف 



RE: حذف الملفات في vb.net - Mr.ILI - 04-10-13

اخي شكرا ... ولكن لم يفي في الغرض ولكن عندي فكرة ... مثلا يوجد في النظام ملف مسارة C:\WINDOWS\system32\advpack.dll
اذا عرفنا العملية Procces الخاصة في الملف advpack.dll ومن ثم قمنا بايقافها وبعدها حذفنا الملف سوف يتم حذفه بدون عودة
ولكن ما هو الكود ؟؟ انا اعرف هذا الكود لكن لا يفي في الغرض :

كود :
Dim path As String = ("C:\WINDOWS\system32\advpack.dll")
        Dim matchingProcesses = New List(Of Process)

        Application.DoEvents()

        For Each process As Process In process.GetProcesses()
            Application.DoEvents()
            For Each m As ProcessModule In process.Modules
                Application.DoEvents()
                If String.Compare(m.FileName, path, StringComparison.InvariantCultureIgnoreCase) = 0 Then
                    matchingProcesses.Add(process)
                    Exit For
                End If
            Next
        Next
        Application.DoEvents()
        For Each pVir As Process In matchingProcesses
            pVir.Kill()
        Next


ولكن المشكلة ان advpack.dll ليس عملية Procces ليقوم بايقافها ... احتاج الى كود يعرف العملية الخاصة ب ملف advpack.dll ومن ثم ايقافها ومن ثم حذف الملف
Big Grin


RE: حذف الملفات في vb.net - ali.alfoly - 04-10-13

انتا كده عايز حاجتين
الحاجه الاولى

1 = تريد معرفة البرامج التى تستخدم الملف حاليا لتقوم بايقافها ( مثلا لو انا مشغل ملف صوتى لا استطيع حذفه الا بعد غلق المشغل الصوتى ) تمام هذا مثل برنامج Unlocker انظر الصورة



هذا انا لا اعرفه ؟؟ واريد ان اعرفه باذن الله الاخوة يساعدونا فى ذلك ما راح يقصروا باذن الله

الحاجه الثانية هى الكود الى انا اعطهولك لان الملف حتى لو ازلت الارتباط لن تستطيع حذفه الا اذا عكست خاصية System

الاخوة ما راح يقصرو باذن الله

اسئل الله تعالى لك التوفيق والسداد


RE: حذف الملفات في vb.net - Mr.ILI - 04-10-13

شكرا لك اخي ما قصرت ... وارجوا من الاخوان المساعدة


RE: حذف الملفات في vb.net - ismail2012 - 04-10-13

بالنسبة لمعرفة البرامج الحالية التي تعمل Process وايقاف أحدها هذا مثال لذلك


RE: حذف الملفات في vb.net - سعود - 05-10-13

كيف يمكن ايقاف اي برنامج يستخدم ملف ما؟
لابد من وجود كود معين يخبرنا ان الملف الفلاني يستخدمه عملية ما.
كيف الى ذلك؟؟
لانه ان عرفنا الكود فبالتاكيد الامثلة الموجودة الان كفيلة باكمال الباقي.

اظن ولم اجرب ان الكود بالرابط التالي هو المطلوب
http://stackoverflow.com/questions/317071/how-do-i-find-out-which-process-is-locking-a-file-using-net


RE: حذف الملفات في vb.net - سعود - 05-10-13

[مشروع] مثال لايقاف اي مشغل لاي ملف لحذف الملف