Savoir si un dossier ne contient QUE des fichiers

Signaler
Messages postés
116
Date d'inscription
mercredi 5 juin 2002
Statut
Membre
Dernière intervention
17 septembre 2008
-
Messages postés
116
Date d'inscription
mercredi 5 juin 2002
Statut
Membre
Dernière intervention
17 septembre 2008
-
Bonjour,

J'utilise cette routine pour faire une liste des fichiers contenu dans un répertoire:

strA = Dir(strSourceFolder + strFolderList(longA) + "", vbHidden + vbSystem)
LongFileNumber = 0
Do While strA <> ""
LongFileNumber = LongFileNumber + 1
strFileList(LongFileNumber) = strA
strA = Dir
Loop


Mais je voudrait en faite savoir si mon dossier contients des sous-dossiers (sans connaitre le nom de ceux-ci) J'essayer avec:
strA = Dir(strSourceFolder + strFolderList(longA) + "", vbDirectory)

Mais cela me donne aussi bien les fichiers que les dossiers.

Il y a t'il un TRUC
Merci de m'inondé de vos réponses.
Olivier

2 réponses

Messages postés
360
Date d'inscription
vendredi 24 août 2001
Statut
Membre
Dernière intervention
9 juillet 2008
3
Fais un 'GetAttrb() And vbDirectory' dans ta boucle sur le nom renvoyé par Dir().

==============
Site Web de JDPROG
Présentation de MP3 Index
Logiciel d'indexation de fichier MP3

http://jdprog.fr.st
0
Messages postés
116
Date d'inscription
mercredi 5 juin 2002
Statut
Membre
Dernière intervention
17 septembre 2008

Merci de ta rêponse, c'est en effet la solution:
Voici le code complet pour les autres:

' Affiche les noms dans C:\ représentant des dossiers.
MyPath =  "c:"   ' Définit le chemin d'accès.
MyName = Dir(MyPath, vbDirectory)   ' Extrait la première entrée.
Do While MyName <> ""   ' Commence la boucle.
   ' Ignore le dossier courant et le dossier
   ' contenant le dossier courant.
   If MyName <> "." And MyName <> ".." Then
      ' Utilise une comparaison au niveau du bit pour
      ' vérifier que MyName est un dossier.
      If (GetAttr(MyPath & MyName) _
         And vbDirectory) = vbDirectory Then
         Debug.Print MyName   ' Affiche l'entrée uniquement si elle
      End If   ' représente un dossier.
   End If
   MyName = Dir   ' Extrait l'entrée suivante.
Loop

C'était dans le MSDN mais j'avais pas vu.
Merci encore
Olivier
0