LISTER LES FICHIERS CONTENUES DANS UN DOSSIER ET SES SOUS-DOSSIERS
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 2008
-
21 oct. 2004 à 17:39
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
29 mars 2007 à 10:45
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 29 mars 2007 à 10:45
ça va bien, et toi ?
soyons sérieux ! Ce n'est pas un chat ici, et encore moins le Forum.
si tu veux poser une question, c'est là bas que ca se passe !!!
http://www.vbfrance.com/infomsg.aspx?ajout=1
cs_malako
Messages postés3Date d'inscriptionmardi 13 mars 2007StatutMembreDernière intervention14 mars 2007 29 mars 2007 à 10:40
cmt va=, dite moi y a qq 1 qui sait comment on ouvre le fichier pour le lire?
mrtrampo
Messages postés7Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention 2 novembre 2004 2 nov. 2004 à 18:30
ok merci
je n'arrivais pas à trouver dans les api une fonction qui faisait ça pour les dossiers
il y a findfirstfile pour les fichiers je crois
on trouve les suivants avec findnext ou un truc comme ça...
en tout cas encore merci
alex
At0mIc
Messages postés7Date d'inscriptionlundi 26 avril 2004StatutMembreDernière intervention24 novembre 2006 2 nov. 2004 à 17:37
Non, mais pense à ajouter un:
Dir(dossier,type)
Le type de fichier peut être:
- 0 Normal
- 1 Lecture seule
- 2 Fichier caché
- 4 Fichier système
- 8 Nom de volume ; si cette valeur est indiquée, le répertoire est ignoré
- 16 Répertoire
- 32 Archive
Cela te retourne le premier trouver. Utilise ensuite "Dir" pour avoir les suivants.
mrtrampo
Messages postés7Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention 2 novembre 2004 2 nov. 2004 à 15:54
il y a quelques temps déjà j'ai fait un programme de recherche comme windows en utilisant la même technique (il n'affiche pas les icônes mais est quand même 4x plus rapide)
J'ai un problème: mon prog ne voit pas les dossiers cachés et leurs sous dossiers (dans les DirListBox il n'y a pas de filtres comme pour FileListBox)
Ton prog voit-il les dossiers et sous-dossiers cachés?
TheLordFreddy
Messages postés157Date d'inscriptionmardi 9 décembre 2003StatutMembreDernière intervention 3 février 20052 22 oct. 2004 à 13:06
Un air de déja vu, bien commenté tout de même
cs_SpOrTiF
Messages postés62Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention 2 septembre 2008 21 oct. 2004 à 22:05
hey atomic:p
C'est un bon code ;o)
PaT
cs_clafouti
Messages postés78Date d'inscriptionsamedi 16 mars 2002StatutMembreDernière intervention 7 septembre 2006 21 oct. 2004 à 20:53
La fonction ne liste pas les fichiers du répertoire racine.
Voici une correction :
Private Function lireDossier(dossier As String)
Dim dossierPrecedent As String
Dim i As Integer
Dim j As Integer
dossierPrecedent = CStr(Dir1.Path) ' Sauvegarde le dossier précédent
Dir1.Path = dossier ' Se place dans le dossier à lire
For i = 0 To (Dir1.ListCount - 1) ' Pour chaque dossier présent
File1.Path = Dir1.List(i) ' Place le path dans le FileList
For j = 0 To (File1.ListCount - 1) ' Pour chaque fichier du FileList
Debug.Print File1.Path & "" & File1.List(j) ' L'affiche dans debug
Next j
lireDossier CStr(Dir1.List(i)) ' Affiche le contenue du dossier sélectionné
Next i
If Dir1.Path = dossierPrecedent Then
'lit les fichiers du répertoire racine
File1.Path = Dir1.List(i) ' Place le path dans le FileList
For j = 0 To (File1.ListCount - 1) ' Pour chaque fichier du FileList
Debug.Print File1.Path & "" & File1.List(j) ' L'affiche dans debug
Next j
End If
Dir1.Path = dossierPrecedent ' Se replace au dossier précédent
End Function
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 21 oct. 2004 à 17:39
Un bel exemple de récursivité. Propre et commenté.
Je ne l'ai pas essayé, mais à vue de nez, çà me semble pas mal.
C'est loin d'être l'algo le plus rapide pour rechercher des fichiers, mais en utilisant des contrôles DirListBox et FileListBox, çà doit être ce qui se fait de mieux.
29 mars 2007 à 10:45
soyons sérieux ! Ce n'est pas un chat ici, et encore moins le Forum.
si tu veux poser une question, c'est là bas que ca se passe !!!
http://www.vbfrance.com/infomsg.aspx?ajout=1
29 mars 2007 à 10:40
2 nov. 2004 à 18:30
je n'arrivais pas à trouver dans les api une fonction qui faisait ça pour les dossiers
il y a findfirstfile pour les fichiers je crois
on trouve les suivants avec findnext ou un truc comme ça...
en tout cas encore merci
alex
2 nov. 2004 à 17:37
Dir(dossier,type)
Le type de fichier peut être:
- 0 Normal
- 1 Lecture seule
- 2 Fichier caché
- 4 Fichier système
- 8 Nom de volume ; si cette valeur est indiquée, le répertoire est ignoré
- 16 Répertoire
- 32 Archive
Cela te retourne le premier trouver. Utilise ensuite "Dir" pour avoir les suivants.
2 nov. 2004 à 15:54
J'ai un problème: mon prog ne voit pas les dossiers cachés et leurs sous dossiers (dans les DirListBox il n'y a pas de filtres comme pour FileListBox)
Ton prog voit-il les dossiers et sous-dossiers cachés?
22 oct. 2004 à 13:06
21 oct. 2004 à 22:05
C'est un bon code ;o)
PaT
21 oct. 2004 à 20:53
Voici une correction :
Private Function lireDossier(dossier As String)
Dim dossierPrecedent As String
Dim i As Integer
Dim j As Integer
dossierPrecedent = CStr(Dir1.Path) ' Sauvegarde le dossier précédent
Dir1.Path = dossier ' Se place dans le dossier à lire
For i = 0 To (Dir1.ListCount - 1) ' Pour chaque dossier présent
File1.Path = Dir1.List(i) ' Place le path dans le FileList
For j = 0 To (File1.ListCount - 1) ' Pour chaque fichier du FileList
Debug.Print File1.Path & "" & File1.List(j) ' L'affiche dans debug
Next j
lireDossier CStr(Dir1.List(i)) ' Affiche le contenue du dossier sélectionné
Next i
If Dir1.Path = dossierPrecedent Then
'lit les fichiers du répertoire racine
File1.Path = Dir1.List(i) ' Place le path dans le FileList
For j = 0 To (File1.ListCount - 1) ' Pour chaque fichier du FileList
Debug.Print File1.Path & "" & File1.List(j) ' L'affiche dans debug
Next j
End If
Dir1.Path = dossierPrecedent ' Se replace au dossier précédent
End Function
21 oct. 2004 à 17:39
Je ne l'ai pas essayé, mais à vue de nez, çà me semble pas mal.
C'est loin d'être l'algo le plus rapide pour rechercher des fichiers, mais en utilisant des contrôles DirListBox et FileListBox, çà doit être ce qui se fait de mieux.