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
Sécuriser Microsoft 365 avec une approche Zero-Trust
Découvrez comment renforcer la cyber-résilience de Microsoft 365 grâce à une approche Zero-Trust, une administration granulaire et une automatisation avancée. La technologie Virtual Tenant de CoreView permet de sécuriser et simplifier la gestion des environnements complexes, tout en complétant vos stratégies IAM, y compris dans les secteurs réglementés.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Pourquoi les outils de sécurité ne suffisent plus face aux angles morts de la détection
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- L’analytique prédictive au service de la décarbonation en France
- Ofelia, ex-Bonitasoft, lance une solution d’orchestration IA agentique
Articles les + lus
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
Analyse Patch Tuesday Mai 2026
Les coûts cachés des merge requests générées par l’IA
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
À la une de la chaîne Tech
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- Analyse Patch Tuesday Mai 2026
- Les coûts cachés des merge requests générées par l’IA
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
