Lister tous les fichiers (meme ceux des sous repertoires)
cs_Florian29
Messages postés52Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention12 avril 2006
-
19 févr. 2003 à 16:13
cs_Fraggy
Messages postés95Date d'inscriptionlundi 9 juin 2003StatutMembreDerniè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!
A voir également:
Lister tous les fichiers (meme ceux des sous repertoires)
cs_wape
Messages postés262Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention19 décembre 201012 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
cs_Fraggy
Messages postés95Date d'inscriptionlundi 9 juin 2003StatutMembreDerniè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.
cs_Fraggy
Messages postés95Date d'inscriptionlundi 9 juin 2003StatutMembreDerniè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