الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

البحث عن كافة الملفات c++ - win32

مغلق
بدأه JAAS في 2 أبريل 2005 · 7 رد · 3,732 مشاهدة · في المواضيع و الدروس القيّمة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا ,,,

-

تابع أكواد وأمثلة

/index.php?showtopic=45180

-

/index.php?showtopic=57429

-

الكود التالي لعملية بحث للملفات في كافة المجلدات ؟!

أولاً فائدة هذا الكود

1- سرعة رهيبة في البحث

2- الكود عبارة عن دالة واحدة - وهذا الشيء نادر للبحث في أكثر من مجلد

وفي النهاية الفكرة قابلة للتطوير- لأنها أصلاً مأخوذة ومطورة ( أكواد مايكروسفت) :

struct ENUMERATE_DIRECTORY_STACK { 
    LPSTR PathEnd; 
    HANDLE FindHandle; 
}; 
  
struct ENUMERATE_DIRECTORY_STATE { 
    DWORD Depth; 
    CHAR Path[ MAX_PATH]; 
}; 

BOOL Findfn(HWND mhWnd)
{

    struct ENUMERATE_DIRECTORY_STATE State; 
    struct ENUMERATE_DIRECTORY_STACK Stack[MAX_PATH]; 
    WIN32_FIND_DATA FindFileData; 
    int ii=0;

///////
    State.Depth = 0; 
    strcpy(State.Path,"C:\\");

//	__try{
                while (TRUE) { 

                startDirectorySearch: 

                    if(ii>=MAX_PATH-1)
   	 break;

                    Stack[ii].PathEnd = strchr( State.Path, '\0' ); 
                    if (Stack[ii].PathEnd > State.Path && Stack[ii].PathEnd[ -1 ] != '\\') { 
                        *(Stack[ii].PathEnd)++ = '\\'; 
                        } 

                    strcpy( Stack[ii].PathEnd, "*.*" ); 
                    Stack[ii].FindHandle = FindFirstFile( State.Path, 
                                                       &FindFileData 
                                                     ); 
                    if (Stack[ii].FindHandle != INVALID_HANDLE_VALUE) { 
                        do { 


                            if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY && 
                                (!strcmp( FindFileData.cFileName, "." ) || 
                                 !strcmp( FindFileData.cFileName, ".." ) 
                                ) 
                               ) { 
                                continue; 
                                } 


                            strcpy( Stack[ii].PathEnd, FindFileData.cFileName ); 


     	 SetWindowText (hsw,State.Path);
     	 SetWindowText (mhWnd,FindFileData.cFileName);

     	 if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { 

                                ii++;
                                State.Depth++; 
                                goto startDirectorySearch; 
                                restartDirectorySearch:;         
                                } 

                            } 

                        while ( FindNextFile( Stack[ii].FindHandle, &FindFileData ) ); 


                        FindClose( Stack[ii].FindHandle ); 
                        } 


                    if (!State.Depth)
                    break; 

                    State.Depth--; 
                    ii--;
                    goto restartDirectorySearch; 


    }

/*	}__except (GetExceptionCode() ){
        
  TCHAR err[300];
  wsprintf(err,"Error in file: %s",State.Path);
  MessageBox (NULL,err,NULL,MB_OK);

    return 1;

	}*/

    SetWindowText (hsw,"");
    SetWindowText (mhWnd,"");

    MessageBox (mhWnd,"All files found... OK",
   	 NULL,MB_OK|MB_ICONINFORMATION);
                 return 0;


}

وللتوضيح أكثر

-

تجد البرنامج + الكود في الملف المرفق

-

Find.zip

1

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#3

السلام عليكم

بالفعل البنامج سريع ولكن لدى إقتراح هل من الامكن ان يبحث البرنامج عن اكبر الملفات هل هناك داله بدل cFileName للحصول على حجم الملف او الدايركتورى مثلاً, هناك داله فى اليونكس تسمى findbigdir وهى تعطيك الدايركترى حسب حجم المحتوى.

طبعاُ الان البرنامج لا يقوم بعمل شيئ مفيد, لانه فقط يمر على جميع الملفات فى الجهاز ثم يقول انها موجوده.

والسلام

لا إله إلا الله محمد رسول الله

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

#4

بالطبع أخي أحمد ,

البرنامج يعطيك المسار وعن طريقة يمكنك عمل كل شيء ,

مثلاً قلت حجم الملف

ببساطة تتستخدم الدالة CreateFile لإعادة المقبض للمسار الذي تم إيجادة

ثم دالة قرائة الحجم GetFileSize

وهكذا مع بقية الدوال ( بعضها يطلب المقبض و الآخر المسار)

-

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#5

السلام عليكم

شكراً لك يأخي JAAS

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

#6
اقتباس
وفي النهاية الفكرة قابلة للتطوير- لأنها أصلاً مأخوذة ومطورة ( أكواد مايكروسفت) :

من متى وما يكروسفت تضع كود مصدري يخص نظامها!!! :blink:

-----

فعلا البحث سريع واسرع من بحث ويندوز... مالسبب يا jass؟

------------------------------------------------------------------------------------------

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#7
اقتباس
من متى وما يكروسفت تضع كود مصدري يخص نظامها!!! 

-----

ليس كود الوندوز ؟! أقصد أكواد مكتبة مايكروسفت msdn

-

المهم البرنامج سريع لأنة لا يقوم بأي شيء غير البحث

وكل ماتقوم بتطويرة تقل سرعتة ( مثل إضافة أكواد للتحقق قبل حدوث خطأ ,... وهكذا مع بقية الأفكار)

-

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#8

مشكوووووووووووووؤ اخي

جاري التحميل

52gv0m.gif

هذا الموضوع مغلق.

مواضيع مشابهة