Lister tous les fichiers (meme ceux des sous repertoires)

cs_Florian29 Messages postés 52 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 12 avril 2006 - 19 févr. 2003 à 16:13
cs_Fraggy Messages postés 95 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 2 juin 2010 - 14 févr. 2004 à 07:54
Salut !
Il faut que j'arrive a lister (dans une listbox) tous les fichiers à partir d'un endroit donné y compris ceux des sous répertoires. J'ai essayé diverses méthodes (trouvées sur le site) mais ça marche pas ou ça fait pas ce que je veux...
Si vous avez une petite source ce serait super cool!
Merci beaucoup!

4 réponses

cs_wape Messages postés 262 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 19 décembre 2010 12
19 févr. 2003 à 23:10
Voici un exemple qui utilise le FileSystemObject :

Il faut tout d'abord sélectionner "Microsoft Scripting Runtime" dans Projet/Références...

Public oFs As FileSystemObject
Public oFolder As Folder
Public oSubFolder As Folder
Public oFile As File

Private Sub Command1_Click()

Dim sFolder As String

'Créer le FileSystemObject
Set oFs = CreateObject("Scripting.FileSystemObject")

'Vider la listbox
List1.Clear

'Définir le répertoire de départ
sFolder = "C:\MonRépertoire"

'Rechercher les fichiers dans le répertoire de départ
Rechercher_Fichiers sFolder

'Rechercher les sous-répertoires et fichiers
Rechercher_Tout sFolder

'Afficher le nombre de fichier(s) trouvé(s)
MsgBox List1.ListCount & " fichier(s) trouvé(s) !", vbInformation

End Sub

Private Sub Rechercher_Fichiers(sFolder As String)

Set oFolder = oFs.GetFolder(sFolder)

'Parcourir les fichiers du répertoire et charger la listbox
For Each oFile In oFolder.Files
List1.AddItem oFile.Name
Next

End Sub

Private Sub Rechercher_Tout(sFolder As String)

Dim sName As String

Set oFolder = oFs.GetFolder(sFolder)

'Parcourir les sous-répertoires du répertoire
For Each oSubFolder In oFolder.SubFolders
'Composer le nom du sous-répertoire
sName = sFolder & oSubFolder.Name & ""
'Rechercher les fichiers
Rechercher_Fichiers sName
'Rechercher les sous-répertoires et fichiers récursivement
Rechercher_Tout sName
Next

End Sub

Slts

wape
0
cs_Florian29 Messages postés 52 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 12 avril 2006
20 févr. 2003 à 10:17
Merci beaucoup de ton aide!
Je venais juste de trouver une solution mais la tienne a l'air assez simple donc je vais l'essayer.
Merci encore!
0
cs_Fraggy Messages postés 95 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 2 juin 2010
14 févr. 2004 à 04:06
solution intérressante éffectivement, mais comment faire au départ de ce bout de code, pour qu'il recherche de la même manière, MAIS uniquement des fichiers ".TXT" par exemple ?

Je suppose qu'il faut lui indiquer le "PATTERN" ...
Cela doit être fesable, mais comment ?

Merci pour les éventuelles réponses malgré que ce post ai déjà 1 an d'age.

Fraggy.
0
cs_Fraggy Messages postés 95 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 2 juin 2010
14 févr. 2004 à 07:54
C'est bon j'ai trouvé ! Solution après mon message :

Comment faire pour qu'il ajoute à la liste les éléments classés par ordre alphabétique & numérique ??

Si vous voulez scanner uniquement les rep et sous rep, à la recherche de fichiers ".TXT" uniquement :

Si vous ne l'avez pas encore fait :
- Ajouter un controle "Bouton" (command1) sur la form
- Ajouter un controle "ListBox" sur la form

Ensuite :

Private Sub Command1_Click()
Dim sFolder As String

Set oFs = CreateObject("Scripting.FileSystemObject")
List1.Clear 'Vider la listbox
sFolder = "C:\Windows" ' (ou autre chose)
RechFichRep sFolder
End Sub

Private Sub RechFichRep(sFolder As String)

Set oFolder = oFs.GetFolder(sFolder)
For Each oSubFolder In oFolder.SubFolders
List1.AddItem " "
List1.AddItem "==>" & oSubFolder.Name & "<=="

For Each oFile In oSubFolder.Files
If Right(oFile, 4) = ".txt" Then
List1.AddItem vbTab & oFile.Name
End If
Next
Next

End Sub
0
Rejoignez-nous