عن الملفات والمجلدات

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

default عن الملفات والمجلدات

مُساهمة من طرف العـطوي في الإثنين نوفمبر 06, 2006 10:57 am

أولا: لا أعلم أين أضع سؤالي إذا كانت هذه الطريقة غير صحيحة أرجو إعلامي بذلك
ثانيا: سؤالي وهو:
كيف أستطيع المرور على كل الملفات الموجودة داخل مجلد ما وكذلك الملفات الموجودة داخل المجلدات الموجودة داخل المجلد الأول..............................وشكرا للقائمين على هذا المنتدي

العـطوي
عضو متميز
عضو متميز

عدد الرسائل : 43
تاريخ التسجيل : 06/11/2006

معاينة صفحة البيانات الشخصي للعضو

الرجوع الى أعلى الصفحة اذهب الى الأسفل

default رد: عن الملفات والمجلدات

مُساهمة من طرف Admin في الإثنين نوفمبر 06, 2006 6:42 pm

بسم الله الرحمن الرحيم

اهلا وسهلا بك اخي

اولا انا اشكرك على طرح هذا السؤال

اخي هذا مثال على ما تريد

وهذا هو الكود
اولا
اضف زر امر وسمه command1
اضف قائمة وسمها list1
اضف اداة استعراض الاقراص وسمها driver1
اضف اداة استعراض المجلدات وسمها dir1
ثم اضف هذ الكود للمشروع

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long

Const MAX_PATH = 260
Const MAXDWORD = &HFFFF
Const INVALID_HANDLE_VALUE = -1
Const FILE_ATTRIBUTE_ARCHIVE = &H20
Const FILE_ATTRIBUTE_DIRECTORY = &H10
Const FILE_ATTRIBUTE_HIDDEN = &H2
Const FILE_ATTRIBUTE_NORMAL = &H80
Const FILE_ATTRIBUTE_READONLY = &H1
Const FILE_ATTRIBUTE_SYSTEM = &H4
Const FILE_ATTRIBUTE_TEMPORARY = &H100

Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
Function StripNulls(OriginalStr As String) As String
If (InStr(OriginalStr, Chr(0)) > 0) Then
OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)
End If
StripNulls = OriginalStr
End Function

Function FindFilesAPI(path As String, SearchStr As String, FileCount As Integer, DirCount As Integer)

Dim FileName As String
Dim DirName As String
Dim dirNames() As String
Dim nDir As Integer
Dim i As Integer
Dim hSearch As Long
Dim WFD As WIN32_FIND_DATA
Dim Cont As Integer
If Right(path, 1) <> "\" Then path = path & "\"

nDir = 0
ReDim dirNames(nDir)
Cont = True
hSearch = FindFirstFile(path & "*", WFD)
If hSearch <> INVALID_HANDLE_VALUE Then
Do While Cont
DoEvents
DirName = StripNulls(WFD.cFileName)
If (DirName <> ".") And (DirName <> "..") Then
If GetFileAttributes(path & DirName) And FILE_ATTRIBUTE_DIRECTORY Then
dirNames(nDir) = DirName
DirCount = DirCount + 1
nDir = nDir + 1
ReDim Preserve dirNames(nDir)
End If
End If
Cont = FindNextFile(hSearch, WFD)
Loop
Cont = FindClose(hSearch)
End If
hSearch = FindFirstFile(path & SearchStr, WFD)
Cont = True
If hSearch <> INVALID_HANDLE_VALUE Then
While Cont
DoEvents
FileName = StripNulls(WFD.cFileName)
If (FileName <> ".") And (FileName <> "..") Then
FindFilesAPI = FindFilesAPI + (WFD.nFileSizeHigh * MAXDWORD) + WFD.nFileSizeLow
FileCount = FileCount + 1
List1.AddItem path & FileName
End If
Cont = FindNextFile(hSearch, WFD) ' Get next file
Wend
Cont = FindClose(hSearch)
End If
If nDir > 0 Then
For i = 0 To nDir - 1
DoEvents
FindFilesAPI = FindFilesAPI + FindFilesAPI(path & dirNames(i) & "\", SearchStr, FileCount, DirCount)
Next i
End If
End Function
Sub Command1_Click()
Dim SearchPath As String, FindStr As String
Dim FileSize As Long
Dim NumFiles As Integer, NumDirs As Integer
Screen.MousePointer = vbHourglass
List1.Clear
SearchPath = Dir1.path
FindStr = "*.*"
FileSize = FindFilesAPI(SearchPath, FindStr, NumFiles, NumDirs)
Screen.MousePointer = vbDefault
End Sub

Private Sub Drive1_Change()
Dir1.path = Drive1.Drive
End Sub

Private Sub List1_DblClick()
MsgBox List1.List(List1.ListIndex), vbOKOnly + vbInformation + vbMsgBoxRight, "مسار الملف الكامل"
End Sub


عدل سابقا من قبل في الخميس أغسطس 16, 2007 10:47 am عدل 1 مرات

_________________
إذا أعجبك موضوع من مواضيعي فلا تقل شكـراً ...
بل قل الآتـي ::
اللهم اغفر له ولوالديه ولزوجته وابنائه ولأخوانه واخواته ولسائر المسلمين ماتقدم من ذنبهم وما تأخر..
وقِهم عذاب القبر وعذاب النار..
و أدخلهم الفردوس الأعلى مع الأنبياء والشهداء والصالحين ..
واجعل دعاءهم مستجاب في الدنيا والآخرة ..
اللـهم آميـن..اللـهم آميـن..اللـهم آميـن..

اخوكم جاد القرعان
الأردن- الطفيلة
jadquraan@yahoo.com
jad_quraansoft@hotmail.com
00962777765709
avatar
Admin
jadquraan
jadquraan

عدد الرسائل : 125
العمر : 35
تاريخ التسجيل : 19/10/2006

معاينة صفحة البيانات الشخصي للعضو http://jad4vb.lightbb.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

default شكر وتقدير

مُساهمة من طرف العـطوي في الإثنين نوفمبر 06, 2006 11:39 pm

أشكرك أخي جاد مع أن الشكر لا يكفي...............................
بصراحة أنا أبحث عن أشياء كثيرة تتعلق بالفيجوال بيسك منذ عدة سنين وكل ما أجدة لا يفيدني بشيء إلا القليل .
ومن خلال التعرف على كتاباتك الشيقة من خلال موقع في بي زوم والآن هذا امنتدى استفدت الكثير والكثير.................شكراً جزيلا لك.
تم التعرف على هذا المنتدى من خلال 20 ساعة مضت واستفدت منه مالا استفدته من عدة منتديات أخرى خلال ما يقارب سنة مضت.
......................................تحياتي وأشواقي........................................

العـطوي
عضو متميز
عضو متميز

عدد الرسائل : 43
تاريخ التسجيل : 06/11/2006

معاينة صفحة البيانات الشخصي للعضو

الرجوع الى أعلى الصفحة اذهب الى الأسفل

default رد: عن الملفات والمجلدات

مُساهمة من طرف Admin في الثلاثاء نوفمبر 07, 2006 12:05 am

حياك الله اخي

بصراحة انا استمتع عندما يطرح سؤال
avatar
Admin
jadquraan
jadquraan

عدد الرسائل : 125
العمر : 35
تاريخ التسجيل : 19/10/2006

معاينة صفحة البيانات الشخصي للعضو http://jad4vb.lightbb.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

default نأسف لأستاذنا الفاضل

مُساهمة من طرف العـطوي في الثلاثاء نوفمبر 07, 2006 6:22 am

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

العـطوي
عضو متميز
عضو متميز

عدد الرسائل : 43
تاريخ التسجيل : 06/11/2006

معاينة صفحة البيانات الشخصي للعضو

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى