Scanner un répertoire
Pour scanner un répertoire, il faut utiliser la fonction DIR.
Cette fonction nécessite un ou deux paramètres: le répertoire à lister et (facultatif) le type de fichier à lister.
Dir retourne le premier fichier trouvé, pour avoir le second, il faut rappeler la fonction dir sans paramètre.
Exemple:
Fichier = Dir("c:\", 2) ' renvoi le premier fichier caché de c:
puis
Fichier2 = Dir ' renvoi le second fichier caché de "c:\"
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
Ainsi Dir("c:\", 16) renvoi les sous répertoires de "c:\"
En partant du répertoire MonRep, nous pouvons donc obtenir tous ces sous répertoires, puis les sous répertoires des sous répertoires...
Nous avons donc essayé de mettre en place une fonction récursive.
Principe simplifié:
function ssrep(Monrep)
rep = Dir(Monrep, 16)
while rep <> ""
ssrep(Monrep & rep)
rep = Dir
wend
end function
L'expérience a été malheureuse, la ligne 'rep = Dir' ne fonctionne plus lorsque l'on revient à la fonction d'origine.
C'est pourquoi nous avont choisi de créer un tableau contenant les répertoires.
MesRep(0) = RepertoireDOrigine
NbRep = 1
Recherche des sous répertoires des répertoires 0 à nbrep - 1 (ex 3 résultats)
MesRep(0) = RepertoireDOrigine
MesRep(1) = SousRep1
MesRep(2) = SousRep2
MesRep(3) = SousRep3
NbRep = 4
Recherche des sous répertoires des répertoires 1 à nbrep - 1
et ainsi de suite...
Nous pouvons ensuite effectuer une boucle sur ce tableau; scanner chacun des répertoires obtenus pour trouver les fichiers et contrôler leurs attributs.