Pour extraire la liste des fichiers d’un répertoire, on utilise quatre API différentes : opendir (), readdir (), rewinddir () et closedir ().
L’API opendir () ouvre un répertoire afin que vous puissiez le lire. C’est comparable à ouvrir un fichier stream avec l’API open () excepté que,
Lire des répertoires
bien entendu, elle ouvre un répertoire au lieu d’un fichier.
Elle accepte un paramètre, le nom de chemin du répertoire que vous voulez ouvrir. Elle renvoie un pointeur vers un « handle de répertoire ». Les API de répertoire utilisent ce pointeur pour suivre le répertoire particulier que vous avez ouvert. C’est semblable au concept « descripteur de fichier » que j’ai décrit dans le premier article de cette série.
L’API readdir () lit l’entrée de répertoire suivant dans le répertoire. Vous devez passer le handle de répertoire que vous avez extrait de l’API opendir (), afin que readdir () sache quel répertoire ouvert vous voulez lire. Cette API renvoie un pointeur vers une structure de données qui contient des informations sur chaque fichier présent dans le répertoire.
La figure 5 montre la structure de données vers laquelle l’API readdir () renvoie le pointeur. Cette structure de données est définie dans le copy book IFSIO_H, dont vous pouvez utiliser le mot-clé LIKEDS de RPG pour la référencer à partir de vos programmes. Bien que la structure de données d’entrée de répertoire contienne un grand nombre de champs, généralement les champs d_name et d_namelen sont les seuls utiles en programmation RPG.
L’API rewinddir () accepte comme son seul paramètre le handle de répertoire que renvoie opendir (). L’API rewinddir () remonte au début du listing de répertoires, de telle sorte que le prochain appel adressé à readdir () extraira à nouveau la première entrée du répertoire.
L’API closedir () ferme un répertoire ouvert. N’oubliez pas de fermer chaque répertoire dès que vous ne l’utilisez plus. En effet, les répertoires ne se ferment pas automatiquement à la fin du programme : si vous oubliez de fermer un répertoire, il reste ouvert jusqu’à la fin du groupe d’activation ou à la fin de votre job. Si cela se produit plusieurs fois, vous pourriez recevoir une erreur signalant qu’il y a trop de fichiers ouverts. Heureusement il est facile d’éviter ce problème : en n’oubliant pas d’appeler closedir ().
Le programme exemple READDIR (figure 6) démontre la lecture du contenu d’un répertoire à partir d’un programme RPG. Il commence par appeler l’API opendir () pour ouvrir le répertoire afin qu’il puisse être lu (A en figure 6). Une fois le répertoire ouvert, le programme appelle l’API readdir () en boucle pour extraire toutes les entrées de répertoire (B en figure 6). Quand le programme atteint la fin de la liste, l’API readdir () renvoie la valeur spéciale *NULL pour indiquer que le programme a atteint la fin du répertoire. La figure 7 montre la sortie affichée à l’écran quand le programme readdir () est exécuté.
Téléchargez cette ressource
SIEM & PME : Comment construire la boîte noire de votre SI ?
Passez à la cybersécurité proactive, transformez la collecte et l’analyse des logs en un bouclier dynamique contre les cybermenaces. Découvrez comment mettre en place une approche SIEM modulaire, évolutive et accessible, pour anticiper, détecter et réagir efficacement aux attaques.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Guide Ultime des Raccourcis Clavier Windows 11 pour les Professionnels IT
- RSSI 2026 : entre IA, réglementation et dépendances, l’art de l’arbitrage
- AI Act : le guide pour prendre le train de l’Omnibus de la conformité
- Adaptation climatique : les entreprises accélèrent, mais peinent à mesurer l’impact financier
Articles les + lus
Commandes Windows 11 : le Guide des Outils accessibles avec Win + R
Sécurité : une approche dans la durée avant tout
Guide Ultime des Raccourcis Clavier Windows 11 pour les Professionnels IT
Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
Model Context Protocol : le contexte, grand oublié du débat
À la une de la chaîne Tech
- Commandes Windows 11 : le Guide des Outils accessibles avec Win + R
- Sécurité : une approche dans la durée avant tout
- Guide Ultime des Raccourcis Clavier Windows 11 pour les Professionnels IT
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Model Context Protocol : le contexte, grand oublié du débat
