Bonsoir unparia,
Merci pour ta réponse et si je te suis dans le code suivant:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| Private Sub SearchForFiles(sRoot As String)
Dim WFD As WIN32_FIND_DATA
Dim hFile As LongPtr
hFile = FindFirstFile(sRoot & ALL_FILES, WFD)
If hFile <> INVALID_HANDLE_VALUE Then
Do
' if a folder, and recurse specified, call method again
If (WFD.dwFileAttributes And vbDirectory) Then
If Asc(WFD.cFileName) <> vbDot Then
NbDossiers = NbDossiers + 1
If fp.bRecurse Then SearchForFiles sRoot & TrimNull(WFD.cFileName) & vbBackslash
End If
Else
' must be a file ..
If MatchSpec(WFD.cFileName, fp.sFileNameExt) Then
fp.nCount = fp.nCount + 1
shDatas.Cells(fp.nCount + RDepart, 2) = sRoot & TrimNull(WFD.cFileName)
' shDatas.Cells(fp.nCount + RDepart, 3) = Format(CDate(WFD.ftLastWriteTime), "dd/mm/yyyy") ==> en erreur, pourquoi moi commandant cousteau ??????
End If
End If
fp.nSearched = fp.nSearched + 1
Loop While FindNextFile(hFile, WFD)
Application.StatusBar = NbDossiers & " / " & fp.nCount
End If
FindClose hFile
End Sub |
après
1 2
| If Asc(WFD.cFileName) <> vbDot Then
NbDossiers = NbDossiers + 1 |
tu ajouterais
if dir( sRoot & TrimNull(WFD.cFileName) ) then ....
Ne pourrait-on pas tester un attribut de WFD pour éviter la commande dir qui est consommatrice de ressources?
bonjour chez toi
Partager