Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPrivate Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Integer Private Type FILETIME dwLowDateTime As Integer dwHighDateTime As Integer End Type Private Type WIN32_FIND_DATA dwFileAttributes As Integer ftCreationTime As FILETIME ftLastAccessTime As FILETIME ftLastWriteTime As FILETIME nFileSizeHigh As Integer nFileSizeLow As Integer dwReserved0 As Integer dwReserved1 As Integer cFileName As String * 260 cAlternate As String * 14 End Type
Le principe n'est pas tellement différent en utilisant dir (il suffit d'obliger vb à en lancer un autre, en rappelant sur elle-même une fonction ou une sub qui le contient).
J'ai choisi ici une sub.
On définit le répertoire à "fouiller" et on détermine un filtre (si on le veut)
Je ne vois pas de balises codes ici (dommage car tu risques d'avoir le tournis... désolé !)
Private Sub CommandButton1_Click() Dim rep As String, filtre As String rep = "e:\monoutil" filtre = "*.txt" dir_dans_dir rep, filtre End Sub Sub dir_dans_dir(ByVal chemin As String, flt As String) Dim Nomfic As String, nbfic As Integer, tremplin As String, i As Integer If Right$(chemin, 1) <> "" Then chemin = chemin & "" Nomfic = Dir$(chemin, vbDirectory) nbfic = 1 Do While Nomfic <> "" If Nomfic <> "." And Nomfic <> ".." Then tremplin = chemin & Nomfic If GetAttr(tremplin) And vbDirectory Then ListBox1.AddItem tremplin & "" & Nomfic dir_dans_dir tremplin, flt Nomfic = Dir$(chemin, vbDirectory) For i = 2 To nbfic Nomfic = Dir$ Next Else If Nomfic Like flt Then ListBox1.AddItem tremplin & "" & Nomfic End If End If End If Nomfic = Dir$ nbfic = nbfic + 1 Loop End Sub
Voilà donc, encore que l'on peut bien évidemment faire la même chose, mais pour alimenter un contrôle Treeview (plus agréable à l'utilisation) plutôt que, comme ici, une listbox
Bonne journée.
Jacques
(*) ça faisait longtemps, ucfoutu : banané !