اذهب الي المحتوي
أوفيسنا

|6| البحث عن ملف على مستوى جهاز الكمبيوتر


الردود الموصى بها

السلام عليكم ورحمة الله وبركاته

أريد كود يبحث عن ملف معين في جهاز الكمبيوتر دون تحديد أي من الأقراص " C أو D" أكتب اسم الملف في الكود وعند الضغط على زر أمر ينفذ الكود عملية البحث ويظهر رسالة في النهاية بالعثور على الملف من عدمه0

للأسف لم أتوصل لذلك الكود ولكن توصلت لكود يبحث في القرص المحدد وهو التالي:

Dim dmar As Variant
Set fs = Application.FileSearch
With fs
    .NewSearch
    .LookIn = "C:\"
    .FileName = "Eidd*.*"
     .SearchSubFolders = True
    If .Execute > 0 Then

        MsgBox "There were " & .FoundFiles.Count & _
            " file(s) found."
        For I = 1 To .FoundFiles.Count
            List2.AddItem .FoundFiles(I)
        Next I
    Else
        MsgBox "There were no files found."
    End If
End With

وعند استبدال المحرك C بأسم " جهاز الكمبيوتر أو MyComputer" لم يتم العثور على الملف.

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

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

شكراً للجميع سلفاً.

  • Thanks 1
رابط هذا التعليق
شارك

مرحباً أستاذي مصلح

عند طلب البحث في الويندوز ملينيوم (بحث عام) فإنه يعطيني هذه العبارة التي تجمع محرك © مع محرك (D) هكذا

(C:;D:)

ربما تفيدك في الكود أعلاه بعد التعديل عليه طبعاً .. علماً بأني لم أجربها أبداً ولكن مجرد فكرة فقط .

"C:;D:\"

ولك تحياتي

رابط هذا التعليق
شارك

شكراً أخي فهد فعلاً كلامك صحيح وشكراً لك على ذلك ولكني أطمع في أن أجد طريقة أفضل حيث قد يكون في جهاز الكمبيوتر أكثر من درايف غير C ، D وقد لا أعرفهم حتى ضمنهم في الكو. ولكن هذا لا يعني أنني لم أجد في ردك الفائدة بل قد أفدتني جداً اثابك الله فقد استطعت البحث في C - D وهذا ما لا كنت أعرفه قبل ردك أكررررررررر لك شكري.

رابط هذا التعليق
شارك

اخوي مصلح

السلام عليكم

غالي انت علينا لكن ما باليد حيلة لان سؤالك للمحترفين

لكن هل فكرت في حل مؤقت وهو البحث عن كود يتعرف على أقراص الجهاز وأسمائها ثم البحث فيها

عل عجل هذا كود يتعرف على محركات الاقرص (من التعليمات مع شوية تعديل)

Sub ShowDriveList()
    Dim fs, d, dc, s
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set dc = fs.Drives
    For Each d In dc
        s = s & d.DriveLetter & vbCrLf
    Next
    MsgBox s
End Sub

تم تعديل بواسطه osama457
رابط هذا التعليق
شارك

ولم يرد إلا الأخ فهد حتى هو ضاع لا أدري ما السبب

أخي مصلح أنا ضعت في المحاولات المستمرة لكي أجد الحل لطلبك ولكن للأسف فكما قال أخي أسامه أن سؤالك للمحترفين وأنا لست منهم كما تعلم .

وأرفق لك ما توصلت إليه .. أعرف أني لم أصل لما تريد أنت ولكني أقول ربما تجد في المشاركة شيئ من الأمل ولا زلت أنا مستمر في المحاولة لعلي أن اتوصل للحل إن شاء الله .

واعذرني على التأخر في الرد للسبب المشار إليه أعلاه .. واعذرني أيضاً على إضاعة وقتك في البرنامج المرفق ..

علماً بأن الكود الذي في البرنامج أعتقد أنه من صنع الأخ مبتدئ جداً .

تحياتي

Fahad.rar

  • Like 1
رابط هذا التعليق
شارك

الأخ فهد

محاولة ممتازة جداً ينقصه التالي :

1. يتم البحث في Drive C فقط

2. يبحث عن الملفات ولا يبحث عن المجلدات فقد كتب اسم مجلد وظهرت لي رسالة بأنه غير موجود في الجهاز مع تأكدي من ذلكك.

توصلت للتالي :

كود يبحث في الــدرايفات ( الأقراص ) المحددة في الكود فقط وقد يحتمل تغيير مسميات الأقراص.

البحث عن ملف ولم استطع البحث عن مجلد .

حسب الكود التالي :

Set fs = Application.FileSearch
With fs
    .newsearch
    .LookIn = (" C:\;D:\;E:\;G:\;H:\")
    .FileName = "*" & [Txtchr] & "*"
     .SearchSubFolders = True

    If .Execute > 0 Then

        MsgBox "تم العثور على عدد " & .FoundFiles.Count & _
            " ملف/ ملفات"
        For i = 1 To .FoundFiles.Count
            List2.AddItem .FoundFiles(i)
        Next i
    Else
        MsgBox "لم يتم العثور على ما تبحث عنه", vbMsgBoxRight + vbInformation, ""
    End If
End With

تظهر الملفات في قائمة اسمها List2 على نموذج. ولكنني أريد نتائج أفضل من هذا

تم تعديل بواسطه مصلح الحريصي
رابط هذا التعليق
شارك

الأخ ابو ريان

ألف شكر لك تعبتك يا رجل .

المثال ممتاز جداً ولكن لم أجد فيه بغيتي حيث أنه يعتمد على قاعدة بيانات في تخزين المسارات . كذلك لم يبحث عن المجلدات فقد كتبت في مربع البحث Program Files وظهرت النتيجة صفر والسبب انه لا يبحث عن المجلدات .

جربه فربما أكون مخطئاً في ذلك . ثم جرب بحث الويندوس ستجده يظهر لك الكلمة التي تبحث عنها سواء مجلد أو ملف .

أكرر شكري لك وأعتذر لك أتعبتك معي.

ألف ألف شكر

رابط هذا التعليق
شارك

  • 4 weeks later...

بعد اذن أخي أبو هادي

فقد شدني الموضوع

هذا مثال مبني علي كود من موقع أجنبي للفيجوال بيزيك دوت نت

المصدر

http://vbnet.mvps.org/index.html?code/file...recursesave.htm

و قد عدلت الكود ليتناسب مع الاكسيس فى المثال المرفق

أرجو أن يكون هو المطلوب

و المثال يقوم بالبحث عن كل الملفات التي لها الاسم المحدد فى الكومبو

ثم يحصيها و يكتب عددها و يسجلها فى ملف نص باسم

officena.txt

فى المسار الافتراضي

c:\mydocuments

مثلا

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

Search_all.rar

رابط هذا التعليق
شارك

شكراً للجميع

لقد عودتمونا أفضل الردود والمشاركات وستبقون محبين للخير بإذن الله

الإخ / ابو هادي

خذ وقتك فلست مستعجل ولكنني محتاج لهذا الموضوع أتمنا لك التوفيق

الأخ/ محمد

حجاً مبروراً وسعياً مشكوراً وتقبل الله منا ومنكم صالح الأعمال أنه سميع مجيب لقد سمعت أنك أديت فريضة الحج هذا العام.

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

   ReDim Preserve sAllFiles(1 To nCount)

ما أريدته هو على النحو التالي :

لدي مجلد باسم Muslh

يحتوي على ملفات بداخله.

أريد كود وأسجل في الكود المجلد المسمى Muslh أو ملف داخل المجلد وعندالضغط على زر اسميته " التأكد من تكامل البرنامج " يتم البحث عن ذلك المجلد أو الملف للتأكد عما إذا كان موجود أم لاء.

أكرر الشكر لكل من شارك في هذا الموضوع ولا زلت أنتظر لعل الحل يصلني قريباً هنا.

رابط هذا التعليق
شارك

السلام عليكم

هذه محاولة ليست بنموذجية ولكن تؤدي الغرض .

من عيوبها أنها لا بد أن تمر على كل الملفات مما قد يجعلها بطيئة .

لو توفر الوقت لدي سأقوم بدراسة الموضوع على أصوله .

تحياتي .

FindFolders.zip

رابط هذا التعليق
شارك

  • 7 months later...
  • 4 months later...
زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information