Dir, fonction

S’applique à
Access pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Remarque

La fonction, la méthode, l’objet ou la propriété décrits dans cette rubrique est désactivé 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 chaîne représentant 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
nom du chemin d’accès 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 nulle («  ») est renvoyée si le chemin d’accès est introuvable.
attributs du système d' Facultatif. Expression constante ou numérique, dont la somme spécifie les attributs de fichier. Si cette option est omise, renvoie les fichiers qui correspondent à pathname, mais qui n’ont aucun attribut.

    

Paramètres

Les paramètresd’argument attributs sont les suivants :

Constante Valeur Description
vbNormal 0 (valeur par défaut) Spécifie les fichiers sans attributs.
vbReadOnly 1 Spécifie des fichiers en lecture seule en plus des fichiers sans attributs.
vbHidden 2 Spécifie les fichiers masqués en plus des fichiers sans attributs.
Système VB 4 Spécifie des 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.
Répertoire virtuel 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 le 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.

Remarques

Dans Microsoft Windows, Dir prend en charge l’utilisation de caractères génériques à plusieurs caractères (*) et à un seul caractère ( ?) pour spécifier plusieurs fichiers. Sous 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 fichier. Par exemple, l’instruction suivante renvoie le nom du premier fichier TEXTE 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 ou une erreur se produit. Si vous spécifiez également des attributs de fichier, le chemin d’accès doit être inclus.

Dir renvoie le premier nom de fichier qui correspond à pathname. Pour obtenir des noms de fichiers supplémentaires qui correspondent à pathname, appelez à nouveau Dir sans arguments. Quand plus aucun nom de fichier ne correspond, Dir renvoie une chaîne nulle («  »). Une fois qu’une chaîne nulle est renvoyée, vous devez spécifier le chemin d’accès dans les appels suivants, sinon une erreur se produit. Vous pouvez changer de chemin d’accès sans récupérer tous les noms de fichiers qui correspondent au 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 renvoie pas continuellement des sous-répertoires.

Conseil Comme les noms de fichiers ne sont pas récupérés dans un ordre particulier, vous pouvez stocker les noms de fichiers renvoyés dans un tableau, 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 développeur dans la liste déroulante en regard de Rechercher , puis entrez un ou plusieurs termes dans la zone de recherche.

Cet exemple utilise la fonction Dir pour case activée l’existence de certains fichiers et répertoires. Sur Macintosh, « HD : » est le nom de lecteur par défaut et les parties du chemin d’accès sont séparées par des 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 le 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