Fonction Dir

Renvoie le nom d'un fichier ou d'un répertoire, ou encore de tous les fichiers et répertoires existant dans une unité ou un répertoire correspondant au chemin de recherche spécifié.

Syntaxe :

Dir [(Text As String) [, Attrib As Integer]]

Valeur de retour :

Chaîne de caractères

Paramètres :

Text : expression au format chaîne de caractères spécifiant le chemin de recherche, le répertoire ou le fichier. Cet argument peut uniquement être spécifié lorsque vous appelez la fonction Dir pour la première fois. Vous pouvez aussi saisir le chemin en notation URL.

Attrib : expression au format nombre entier spécifiant les attributs de fichier au niveau du bit. La fonction Dir renvoie uniquement les fichiers ou répertoires correspondant aux attributs spécifiés. Vous pouvez combiner plusieurs attributs en ajoutant les valeurs de ceux-ci :

0 : fichiers normaux.

16 : renvoie le nom du répertoire uniquement.

Cet attribut permet de savoir si un fichier ou un répertoire existe, ou bien de déterminer les fichiers et dossiers présents dans un répertoire spécifique.

Pour savoir si un fichier existe, saisissez son chemin complet et son nom. Si le nom du fichier ou du répertoire n'existe pas, la fonction Dir renvoie une chaîne de longueur zéro ("").

Pour générer la liste complète des fichiers existant dans un répertoire spécifique, procédez comme suit : La première fois que vous appelez la fonction Dir, indiquez le chemin de recherche complet des fichiers, par exemple "D:\Files\*.odt". Si le chemin est correct et que la recherche trouve au moins un fichier, la fonction Dir renvoie le nom du premier fichier correspondant au chemin. Pour obtenir les autres noms de fichiers correspondant au chemin, appelez à nouveau la fonction Dir, mais sans argument.

Pour que la fonction renvoie uniquement des répertoires, utilisez le paramètre "attribut". La même règle s'applique pour déterminer le nom d'un volume (partition de disque dur, par exemple).

Codes d'erreur :

5 appel de procédure incorrect

53 fichier non trouvé

Exemple :

Sub ExampleDir

' Affiche tous les fichiers et répertoires

Dim sPath As String

Dim sDir As String, sValue As String

    sDir="Répertoires :"

    sPath = CurDir

    sValue = Dir$(sPath + getPathSeparator + "*",16)

    Do

        If sValue <> "." And sValue <> ".." Then

            If (GetAttr( sPath + getPathSeparator + sValue) And 16) >0 Then

                ' Obtenir les répertoires

                sDir = sDir & chr(13) & sValue

            End If

        End If

        sValue = Dir$

    Loop Until sValue = ""

    MsgBox sDir,0,sPath

End Sub