Remarque : La fonction, la méthode, l’objet ou la propriété décrite dans cette rubrique est désactivée si le service d’expression Microsoft Jet s’exécute en mode bac à sable, ce qui empêche l’évaluation d’expressions potentiellement dangereuses. Pour plus d’informations sur le mode bac à sable, recherchez « mode bac à sable » dans l’aide.
Renvoie une valeur de type String qui représente le nom d’un fichier, d’un répertoire ou d’un dossier qui correspond à un modèle ou à un attribut de fichier spécifié, ou à l’étiquette de volume d’un lecteur.
Syntaxe
Dir[(pathname [, attributes] )]
La syntaxe de la fonction Dir contient les arguments suivants :
Argument |
Description |
Chemin |
Facultatif. Expression de chaîne qui spécifie un nom de fichier : peut inclure un répertoire ou un dossier et un lecteur. Une chaîne de longueur nulle (« ») est retournée si pathname est introuvable. |
Attributs |
Facultatif. Constante ou expression numérique, dont la somme spécifie les attributs de fichier. S’il est omis, retourne les fichiers qui correspondent à pathname , mais qui n’ont pas d’attributs. |
Paramètres
Les attributsargument paramètres sont les suivants :
Constante |
Valeur |
Description |
vbNormal |
0 |
(Par défaut) Spécifie les fichiers sans attributs. |
vbReadOnly |
1 |
Spécifie les fichiers en lecture seule en plus des fichiers sans attributs. |
vbHidden |
2 |
Spécifie les fichiers masqués en plus des fichiers sans attributs. |
VbSystem |
4 |
Spécifie les fichiers système en plus des fichiers sans attributs. Non disponible sur Macintosh. |
vbVolume |
8 |
Spécifie l’étiquette du volume ; si un autre attribut est spécifié, vbVolume est ignoré. Non disponible sur Macintosh. |
vbDirectory |
16 |
Spécifie des répertoires ou des dossiers en plus des fichiers sans attributs. |
vbAlias |
64 |
Le nom de fichier spécifié est un alias. Disponible uniquement sur Macintosh. |
Remarque : Ces constantes sont spécifiées par Visual Basic pour Applications (VBA) et peuvent être utilisées n’importe où dans votre code à la place des valeurs réelles.
Notes
Dans Microsoft Windows, Dir prend en charge l’utilisation de caractères génériques à plusieurs caractères (*) et à caractère unique ( ?) pour spécifier plusieurs fichiers. Sur Macintosh, ces caractères sont traités comme des caractères de nom de fichier valides et ne peuvent pas être utilisés comme caractères génériques pour spécifier plusieurs fichiers.
Étant donné que Macintosh ne prend pas en charge les caractères génériques, utilisez le type de fichier pour identifier les groupes de fichiers. Vous pouvez utiliser la fonction MacID pour spécifier le type de fichier au lieu d’utiliser les noms de fichiers. Par exemple, l’instruction suivante retourne le nom du premier fichier TEXT dans le dossier actif :
Dir("SomePath", MacID("TEXT"))
Pour itérer sur tous les fichiers d’un dossier, spécifiez une chaîne vide :
Dir("")
Si vous utilisez la fonction MacID avec Dir dans Windows, une erreur se produit.
Toute valeur d’attribut supérieure à 256 est considérée comme une valeur MacID .
Vous devez spécifier pathname la première fois que vous appelez la fonction Dir , sinon une erreur se produit. Si vous spécifiez également des attributs de fichier, pathname doit être inclus.
Dir retourne le premier nom de fichier qui correspond à pathname. Pour obtenir des noms de fichiers supplémentaires qui correspondent à pathname, appelez de nouveau Dir sans arguments. Quand plus aucun nom de fichier ne correspond, Dir retourne une chaîne de longueur nulle (« »). Une fois qu’une chaîne de longueur nulle est retournée, vous devez spécifier pathname dans les appels suivants, sinon une erreur se produit. Vous pouvez passer à un nouveau nom de chemin d’accès sans récupérer tous les noms de fichiers qui correspondent au nom de chemin d’accès actuel. Toutefois, vous ne pouvez pas appeler la fonction Dir de manière récursive. L’appel de Dir avec l’attribut vbDirectory ne retourne pas continuellement de sous-répertoires.
Conseil Étant donné que les noms de fichiers ne sont récupérés dans aucun ordre particulier, vous pouvez stocker les noms de fichiers retournés dans un matrice, puis trier le tableau.
Exemple
Remarque : Les exemples suivants illustrent l’utilisation de cette fonction dans un module Visual Basic pour Applications (VBA). Pour plus d’informations sur l’utilisation de VBA, sélectionnez Référence du développeur dans la liste déroulante en regard de Rechercher et entrez un ou plusieurs termes dans la zone de recherche.
Cet exemple utilise la fonction Dir pour case activée si certains fichiers et répertoires existent. Sur Macintosh, « HD : » est le nom de lecteur par défaut et les parties du chemin d’accès sont séparées par deux-points au lieu de barres obliques inverses. En outre, les caractères génériques Windows sont traités comme des caractères de nom de fichier valides sur Macintosh. Toutefois, vous pouvez utiliser la fonction MacID pour spécifier des groupes de fichiers.
Dim MyFile, MyPath, MyName
' Returns "WIN.INI" (on Microsoft Windows) if it exists. MyFile = Dir("C:\WINDOWS\WIN.INI") ' Returns filename with specified extension. If more than one *.ini ' file exists, the first file found is returned. MyFile = Dir("C:\WINDOWS\*.INI") ' Call Dir again without arguments to return the next *.INI file in the ' same directory. MyFile = Dir ' Return first *.TXT file with a set hidden attribute. MyFile = Dir("*.TXT", vbHidden) ' Display the names in C:\ that represent directories. MyPath = "c:\" ' Set the path. MyName = Dir(MyPath, vbDirectory) ' Retrieve the first entry. Do While MyName <> "" ' Start the loop. ' Ignore the current directory and the encompassing directory. If MyName <> "." And MyName <> ".." Then ' Use bitwise comparison to make sure MyName is a directory. If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then Debug.Print MyName ' Display entry only if it End If ' it represents a directory. End If MyName = Dir ' Get next entry. Loop