DIR |
Répertoire |
|---|---|
| Access 2019, Access 2016, Access 2013, Access 2010, Access 2007, Access 2003, Access XP, Access 2000 | Microsoft Access |
Syntaxe
| Dir [( path [, attributes ] ) ] |
Paramètres
| Nom | Description | ||
|---|---|---|---|
| path | Ce paramètre permet d'indiquer le chemin d'accès à un fichier, un dossier ou un répertoire. Si le chemin est introuvable, la fonction Dir renvoie une chaîne vide. | ||
| attributes | Ce paramètre permet d'indiquer la somme des attributs du fichier. Les attributs du fichier peuvent prendre une ou plusieurs des valeurs suivantes : | ||
| Constante VB | Valeur | Description | |
| bNormal | 0 | Normal. Valeur par défaut. | |
| vbReadOnly | 1 | Lecture seulement | |
| vbHidden | 2 | Caché | |
| vbSystem | 4 | Fichier système | |
| vbVolume | 8 | Étiquette de volume | |
| vbDirectory | 16 | Répertoire ou dossier | |
| vbAlias | 64 | Le nom du fichier est un alias | |
Description
Cette fonction permet de retourner le premier nom de fichier correspondant au chemin d'accès et aux attributs spécifiés. Pour obtenir d'autres noms de fichiers correspondants, appelez à nouveau la fonction Dir sans argument.
Remarques
- Vous pouvez utiliser des caractères génériques pour spécifier plusieurs fichiers. Voici les modèles disponibles :
- La fonction permet de rechercher des fichiers et des dossiers : La fonction Dir sert à localiser des fichiers ou des répertoires présents sur un support d'entreposage. Elle retourne le nom du premier élément correspondant au chemin et aux critères spécifiés. Cette fonction est largement utilisée pour vérifier l'existence de fichiers avant de les ouvrir ou de les traiter.
- Le paramètre path peut contenir un chemin absolu ou relatif : Le chemin fourni peut être un chemin complet, comme C:\Documents\rapport.pdf, ou un chemin relatif au répertoire courant. Si le chemin n'existe pas ou qu'aucun fichier ne correspond, Dir retourne une chaîne vide (""). Cette valeur permet de détecter facilement l'absence d'un fichier.
- La fonction prend en charge les caractères génériques : Dir accepte les caractères génériques * et ? afin de rechercher plusieurs fichiers simultanément. Par exemple, Dir("C:\Temp\*.txt") retourne le premier fichier ayant l'extension .txt, tandis que Dir("Image?.jpg") recherche des noms contenant un seul caractère à l'emplacement du point d'interrogation. Cette fonctionnalité simplifie considérablement les recherches de fichiers.
- Elle permet de parcourir tous les fichiers d'un répertoire : Après un premier appel à Dir avec un chemin, il suffit d'appeler Dir() sans argument pour obtenir le fichier suivant répondant aux mêmes critères. Ce mécanisme permet de parcourir l'ensemble des fichiers d'un dossier sans utiliser d'objet spécialisé. La boucle se termine lorsque Dir() retourne une chaîne vide.
- Les attributs permettent de filtrer les résultats : Le paramètre attributes permet de limiter la recherche à certains types de fichiers, comme les fichiers cachés (vbHidden), les fichiers système (vbSystem), les dossiers (vbDirectory) ou les fichiers en lecture seule (vbReadOnly). Plusieurs attributs peuvent être combinés afin d'affiner la recherche. Cette possibilité est particulièrement utile pour les utilitaires de gestion de fichiers.
- Elle est souvent utilisée pour vérifier l'existence d'un fichier : L'une des utilisations les plus fréquentes de Dir consiste à tester si un fichier existe avant d'essayer de l'ouvrir. Une instruction comme If Dir(Chemin) <> "" Then permet d'éviter de nombreuses erreurs d'exécution. Cette technique est largement utilisée dans les applications manipulant des documents externes.
- La fonction ne retourne que le nom de l'élément trouvé : Dir renvoie uniquement le nom du fichier ou du dossier correspondant, sans son chemin complet. Si l'application a besoin du chemin absolu, il faut le reconstruire en concaténant le dossier de recherche avec le nom retourné. Cette particularité est importante lors de la manipulation de plusieurs répertoires.
- Elle peut être combinée avec d'autres fonctions de gestion des fichiers : Dir est fréquemment utilisée avec FileLen, FileDateTime ou CurDir. Ensemble, ces fonctions permettent de vérifier l'existence d'un fichier, connaître sa taille, sa date de modification ou encore le supprimer ou le renommer. Elles constituent les principales fonctions de gestion du système de fichiers en VBA.
- La fonction n'est pas adaptée aux recherches simultanées : Dir conserve un état interne afin de poursuivre une recherche lors des appels successifs sans argument. Si une nouvelle recherche est lancée avant que la précédente soit terminée, l'état est réinitialisé. Pour effectuer plusieurs parcours de répertoires en parallèle, il est préférable d'utiliser le FileSystemObject ou des API spécialisées.
- La fonction est compatible avec toutes les versions modernes de Microsoft Access : La fonction Dir est disponible depuis les premières versions de Microsoft Access intégrant VBA et son comportement est demeuré stable au fil des années. Elle est compatible avec Access 2000, Access XP, Access 2003, Access 2007, Access 2010, Access 2013, Access 2016 ainsi qu'avec Microsoft 365. Cette stabilité en fait une fonction incontournable pour toutes les applications Access manipulant des fichiers et des répertoires.
| Caractères génériques | Description |
|---|---|
| * | Permet de rechercher n'importe quelle chaîne de caractères, quelle que soit sa longueur (y compris vide). |
| ? | Permet de rechercher un seul caractère. |
Pour parcourir tous les fichiers d'un répertoire, utilisez une chaîne vide :
Dir ("")
Exemple
Voici un exemple de comment utiliser la fonction Dir dans Microsoft Access :
Dir("C:\example.mdb")
Résultat: "example.mdb"
Dir("C:\ex*.mdb")
Résultat: "example.mdb"
Dir("C:\exampl?.mdb")
Résultat: "example.mdb"
Exemple de code VBA
La fonction Dir ne peut être utilisée que dans le code VBA de Microsoft Access.
Par exemple :
Dim LResult As String
LResult = Dir("C:\example.mdb")
Dans cet exemple, la variable appelée LResult contiendrait désormais le nom du fichier example.mdb.
Dernière mise à jour : Mardi, le 28 juillet 2015