Function CountFilesFromDirectory(ByVal sDir As String, Optional ByVal sFilter As String = "*.*") As Long
Dim Fso As Object
Dim Fi
Set Fso = CreateObject("Scripting.FileSystemObject")
'Verifie la valeur du filtre
If sFilter = "*.*" Then
'retourne directement l'attribut count
CountFilesFromDirectory = Fso.GetFolder(sDir).Files.Count
Else
'si filtre spécial
For Each Fi In Fso.GetFolder(sDir).Files
'transformation du filtre pour en ressortir par ex: dll au lieu de *.dll
sFilter = Right(sFilter, (Len(sFilter) - InStrRev(sFilter, ".")))
'recuperation de l'extension du fichier
If Fso.GetExtensionName(Fi.Path) = sFilter Then
'incrépentation de la valeur a retourner
CountFilesFromDirectory = CountFilesFromDirectory + 1
End If
Next
End If
Set Fso = Nothing
Set Fi = Nothing
End Function
Pour rappel
Call MsgBox(CountFilesFromDirectory("C:\WINNT\System32"))
Call MsgBox(CountFilesFromDirectory("C:\WINNT\System32\", "*.dll"))
By Renfield