مرحبا
انا عملت مشروع بسيط لمعرفة اسماء الملفات التنفيذية في اي ملف مع المسار واستخدمت هاذا الكود
كود :
Dim file2 As String() = Directory.GetFiles("C:\ProgramData", "*.exe")
For Each b In file2
TextBox2.Text += b + Environment.NewLine
Next
مشكلة هاذا الكود لابد من كتابة المسار حتى يضهر جميع اسماء الملفات التنفيذية بصيغة exe
لاكن المطلوب كود مشابه له ويضهر جميع اسماء الملفات في كافة الملفات في الجهاز يعني اضهار شامل
القى نظرة على هذا الرابط
ستجد به الكود لـ Sub التالى
كود :
Private Sub Search_Exe(ByVal StartDir As String)
Dim Dirs As IEnumerable(Of String) = Nothing
Try
Dim files() As String
Dirs = IO.Directory.EnumerateDirectories(StartDir)
files = IO.Directory.EnumerateFiles(StartDir) _
.Where(Function(CurrentFile As String)
Dim Extention = IO.Path.GetExtension(CurrentFile)
If Extention.ToLower = ".exe" Then
Return True
Else
Return False
End If
End Function).ToArray
ListBox1.Items.AddRange(files)
Catch ex As Exception
'Just Skip the denied access dirs
End Try
' kevininstructor added check for Nothing
If Dirs IsNot Nothing Then
For Each Dir As String In Dirs
Search_Exe(Dir)
Next
Else
' Access denied thrown in Catch above
End If
End Sub
وعند تطبيق الامر فقط سيكون بهذا الشكل
بدلاً من
يمكنك وضع اى مسار اذا كان مجلد وتحتوى على عديد من المجلدات الداخلية
فسيقوم بالبداء بالبحث بهذا المجلد وما بداخل المجلدات التى بداخل هذا المسار فقط
اتمنى ان يكون الكود بسيط لك
وان يكون هذا ما تريده تماماً
تحياتى لك
وتمنياتى لك التوفيق
قبل كلاً من IO
ضع هذه الجملة
ليصبح كلا من السطرين بهذا الشكل
كود :
Dirs = System.IO.Directory.EnumerateDirectories(StartDir)
files = System.IO.Directory.EnumerateFiles(StartDir) _
او يكفى استدعاء باستخدام الكود التالى
من ثم جعل كل من السطرين بهذا الشكل
كود :
Dirs = Directory.EnumerateDirectories(StartDir)
files = Directory.EnumerateFiles(StartDir) _
تحياتى لك
وتمنياتى لك التوفيق
(30-10-18, 09:02 PM)elgokr كتب : [ -> ]قبل كلاً من IO
ضع هذه الجملة
ليصبح كلا من السطرين بهذا الشكل
كود :
Dirs = System.IO.Directory.EnumerateDirectories(StartDir)
files = System.IO.Directory.EnumerateFiles(StartDir) _
او يكفى استدعاء باستخدام الكود التالى
من ثم جعل كل من السطرين بهذا الشكل
كود :
Dirs = Directory.EnumerateDirectories(StartDir)
files = Directory.EnumerateFiles(StartDir) _
تحياتى لك
وتمنياتى لك التوفيق
لم يتغير الخطا حتى جربت تغيير الى system.io
بما ان الرسالة تبقي كما هى
فهنا يبقي المشكلة فى .net framework
من خلال التعديل فى My Project
طبق كما فى الصورة وما اعلى من اصدار
تذكر بان لا يكون الفريم يحتوى على كلمة Client Profile
عند اختيار الاصدار 4 وما اعلى ستجد المشكلة حلت بامر الله
تحياتى لك
وتمنياتى لك التوفيق
(31-10-18, 11:30 PM)elgokr كتب : [ -> ]بما ان الرسالة تبقي كما هى
فهنا يبقي المشكلة فى .net framework
من خلال التعديل فى My Project
طبق كما فى الصورة وما اعلى من اصدار
تذكر بان لا يكون الفريم يحتوى على كلمة Client Profile
عند اختيار الاصدار 4 وما اعلى ستجد المشكلة حلت بامر الله
تحياتى لك
وتمنياتى لك التوفيق
المشكلة الاولى انحلت ولاكن ضهر خطا واحد حاولت احله لم ينتهي
(01-11-18, 11:07 AM)dasktop كتب : [ -> ]المشكلة الاولى انحلت ولاكن ضهر خطا واحد حاولت احله لم ينتهي
بخصوص الخطاء هنا يرجع لاصدار لديك
لا يقبل الاستكمال الاسطر من خلال _
كل الامر ستاتى عند هذه الاسطر
كود :
files = IO.Directory.EnumerateFiles(StartDir) _
.Where(Function(CurrentFile As String)
واجعلها بهذا الشكل
كود :
files = IO.Directory.EnumerateFiles(StartDir).Where(Function(CurrentFile As String)
وستتم حل المشكلة
ليصبح الشكل النهائي للكود
كود :
Private Sub Search_Exe(ByVal StartDir As String)
Dim Dirs As IEnumerable(Of String) = Nothing
Try
Dim files() As String
Dirs = IO.Directory.EnumerateDirectories(StartDir)
files = IO.Directory.EnumerateFiles(StartDir).Where(Function(CurrentFile As String)
Dim Extention = IO.Path.GetExtension(CurrentFile)
If Extention.ToLower = ".exe" Then
Return True
Else
Return False
End If
End Function).ToArray
ListBox1.Items.AddRange(files)
Catch ex As Exception
'Just Skip the denied access dirs
End Try
' kevininstructor added check for Nothing
If Dirs IsNot Nothing Then
For Each Dir As String In Dirs
Search_Exe(Dir)
Next
Else
' Access denied thrown in Catch above
End If
End Sub
تحياتى لك
وتمنياتى لك التوفيق
لم ينتهي الخطا علماً غيرت الاصدار ولازال باقي