OVH Cloud OVH Cloud

liste de fichiers d'un répertoire et sous répertoire

3 réponses
Avatar
Yoann
Bonsoir à tous
je cherche comment mettre dans une variable indicée la liste des fichier se
situant dans un répertoire (en incluant les fichiers se trouvant dans les
éventuels sous répertoires)
Ca fait un bout de temps que je me casse les dents la dessus, quelqu'un
pourrait m'aider ? :-S

Merci d'avance ;-)

3 réponses

Avatar
François Picalausa
Hello,

Tu as un exemple de parcours de tous les fichiers d'un dossier à cette
adresse:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;185476

Il te suffit de stoquer les fichiers dans une tableau dynamique (ou
éventuellement collection si tu utilise des objets pour représenter les
fichiers) au fur et à mesure que tu récupères leur nom.
Ces procédures étant récursives, tu peux employer une variable de type
Static si tu veux associer un index unique avec chaque fichier. Mais tu
pourrais aussi employer les propriétés LBound et Ubound (ou la propriété
Count pour une collection) pour retrouver un index numérique unique.

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"Yoann" a écrit dans le message de
news:cdbu2l$h81$
Bonsoir à tous
je cherche comment mettre dans une variable indicée la liste des
fichier se situant dans un répertoire (en incluant les fichiers se
trouvant dans les éventuels sous répertoires)
Ca fait un bout de temps que je me casse les dents la dessus,
quelqu'un pourrait m'aider ? :-S

Merci d'avance ;-)


Avatar
Yoann
ok merci de ton aide ^^

@++

"François Picalausa" a écrit dans le message de news:

Hello,

Tu as un exemple de parcours de tous les fichiers d'un dossier à cette
adresse:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;185476

Il te suffit de stoquer les fichiers dans une tableau dynamique (ou
éventuellement collection si tu utilise des objets pour représenter les
fichiers) au fur et à mesure que tu récupères leur nom.
Ces procédures étant récursives, tu peux employer une variable de type
Static si tu veux associer un index unique avec chaque fichier. Mais tu
pourrais aussi employer les propriétés LBound et Ubound (ou la propriété
Count pour une collection) pour retrouver un index numérique unique.

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"Yoann" a écrit dans le message de
news:cdbu2l$h81$
> Bonsoir à tous
> je cherche comment mettre dans une variable indicée la liste des
> fichier se situant dans un répertoire (en incluant les fichiers se
> trouvant dans les éventuels sous répertoires)
> Ca fait un bout de temps que je me casse les dents la dessus,
> quelqu'un pourrait m'aider ? :-S
>
> Merci d'avance ;-)




Avatar
ephores
Bonsoir voici mon bout de code pour faire ce que tu cherche:
il faut une " Drive listbox" nommé Drive1
"DirListBox" nommé Dir1
"ListBox" nommé LstFichier

voilà ! bonne prog.


Private Sub Dir1_Change()

Dim NbOccurence As Long
Dim Repertoire As String
Dim Masque As String
Dim ResultatRecherche As ListeFichier
Dim i As Long

LstFichier.Clear
ResultatRecherche.Nombre = 0


'---on paramètre le répertoire à vérifier
Repertoire = Dir1.Path
'---on test de bien avoir un "" a la fin du chemin
If Right(Repertoire, 1) <> "" Then Repertoire = Repertoire & ""
'---le masque sert à filtrer les fichiers à rechercher
'---exemple "*.doc" , "*.exe" ...
Masque = "*.xls"

'---on récupère le nombre de fichiers trouvés
NbOccurence = Rechercher(Repertoire, Masque, ResultatRecherche)

'---on parcours tous les résultats trouvés
'---et on affiche le nom du fichier dans la listbox
For i = 1 To NbOccurence

LstFichier.AddItem ResultatRecherche.Fichiers(i).cFileName


Next
End Sub


"Yoann" a écrit dans le message de
news:cdbu2l$h81$
Bonsoir à tous
je cherche comment mettre dans une variable indicée la liste des fichier


se
situant dans un répertoire (en incluant les fichiers se trouvant dans les
éventuels sous répertoires)
Ca fait un bout de temps que je me casse les dents la dessus, quelqu'un
pourrait m'aider ? :-S

Merci d'avance ;-)