;~ May be this will help MsgBox(0,'',GetFileCount(@ScriptDir,"pdf",true)) MsgBox(0,'',GetSubTreeFileCount_ByWildCard(@ScriptDir,"*.pdf",true)) Func GetFileCount($path,$ext, $Recurcive=False) Local $Count=0 Local $objFSO= ObjCreate("Scripting.FileSystemObject") ;~ Count files in current folder For $objFSO_File in $objFSO.GetFolder($path).Files if $objFSO.GetExtensionName($objFSO_File.Name) = $ext then $Count += 1 Next ;~ Recursive all subfolders if $Recurcive then For $objFSO_SubFolder in $objFSO.GetFolder($path).Subfolders $Count += GetFileCount($objFSO_SubFolder.Path,$ext,$Recurcive) Next EndIf Return $Count EndFunc Func GetSubTreeFileCount_ByWildCard($path,$WildCard="*.*",$Recurcive=False) Local $Count=0 ;~ Count files in current folder $search = FileFindFirstFile($path & "\" & $WildCard) If $search <> -1 Then While 1 $file = FileFindNextFile($search) If @error Then ExitLoop $Count+=1 WEnd EndIf FileClose($search) ;~ Recursive all subfolders if $Recurcive then Local $objFSO= ObjCreate("Scripting.FileSystemObject") Local $objFSO_Folder = $objFSO.GetFolder($path) Local $colFSO_SubFolders = $objFSO.GetFolder($path).Subfolders For $objFSO_File in $colFSO_SubFolders $Count += GetSubTreeFileCount_ByWildCard($objFSO_File.Path,$WildCard,$Recurcive) Next EndIf Return $Count EndFunc