PDA

View Full Version : بدست آوردن تعداد پوشه ها و فایل ها



ƒxmahdi
دوشنبه 29 بهمن 1386, 18:47 عصر
دوستان برنامه نویس خسته نباشد
من می خوام تعداد پوشه ها و فایل های یک داریو را به طور کامل بدست بیارم از شیء FileSearch برای سرچ فایل ها استفاده کردم ولی درست جواب نمی ده چون در بعضی موارد تعداد فایل هایی که جستجو می کنه نسبت به برنامه سرچ ویندوز خیلی کمتره

Mbt925
دوشنبه 29 بهمن 1386, 22:57 عصر
این نمونه رو دانلود کنید:



Private Function CountFiles(ByVal folderPath As String, Optional ByVal fileType As String = "*")

Dim oFSO As New FileSystemObject
Dim oFolder As Folder
Dim oFiles As Files
Dim oFile As File
Dim count As Long
Set oFolder = oFSO.GetFolder("c:\")
Set oFiles = oFolder.Files

fileType = LCase(Trim(fileType))

If fileType = "*" Then
CountFiles = oFiles.count
Else
For Each oFile In oFiles
If LCase(oFSO.GetExtensionName(oFile.Name)) = fileType Then count = count + 1
Next oFile
CountFiles = count
End If

End Function

ƒxmahdi
سه شنبه 30 بهمن 1386, 07:33 صبح
جناب Mbt925 ممنون
مشکل تعداد فایل ها حل شد حالا تعداد فولد ها را چطور بدست بیارم

ƒxmahdi
سه شنبه 30 بهمن 1386, 19:22 عصر
من جواب دومم را نگرفتم نمی دانم کدام مدیر این تایپیک را حل شده اعلام کرده لطفا ...

Mbt925
سه شنبه 30 بهمن 1386, 23:03 عصر
ساده ترین راه برای بدست آوردن تعداد فایل ها و فولدر ها:





Private Function CountFolders(ByVal Path As String) As Long

Dim TempStr As String

If Right(Path, 1) <> "\" Then Path = Path & "\"

If Dir(Path) = "" Then Exit Function

CountFolders = 0

TempStr = Dir(Path, vbDirectory + vbHidden)

Do While (TempStr <> "")

If (TempStr <> "." And TempStr <> "..") Then
If (GetAttr(Path & TempStr) And vbDirectory) = vbDirectory Then
CountFolders = CountFolders + 1
End If
End If

TempStr = Dir()

Loop

End Function

Private Function CountFiles(ByVal Path As String) As Long

Dim TempStr As String

If Right(Path, 1) <> "\" Then Path = Path & "\"

If Dir(Path) = "" Then Exit Function

CountFiles = 0

TempStr = Dir(Path, vbSystem + vbHidden)

Do While (TempStr <> "")

If (TempStr <> "." And TempStr <> "..") Then
CountFiles = CountFiles + 1
End If

TempStr = Dir()

Loop

End Function