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 [(PathName As String [, Attributes As Integer])]

Valeur de retour :

Chaîne de caractères

Paramètres :

PathName : toute expression de chaîne qui spécifie le chemin de recherche, le répertoire ou le fichier. Cet argument ne peut être spécifié que la première fois que vous appelez la fonction Dir. Si vous le souhaitez, vous pouvez saisir le chemin en notation d'URL.

Attributes : toute expression entière qui spécifie les attributs de fichier au niveau du bit. La fonction Dir renvoie uniquement les fichiers ou répertoires qui correspondent aux attributs spécifiés. Vous pouvez combiner plusieurs attributs en ajoutant les valeurs d'attribut :

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

Aidez-nous !