OPENDIR |
Ouvre le répertoire |
|---|---|
Perl |
Syntaxe
| opendir dirhandle, expression |
Paramètres
| Nom | Description |
|---|---|
| dirhandle | Ce paramètre permet d'indiquer l'identificateur de descripteur («Handle»). |
| expression | Ce paramètre permet d'indiquer le chemin d'accès au répertoire. |
Description
Cette fonction permet d'ouvrir un répertoire.
Remarques
- Fonction indispensable pour la lecture du contenu d'un dossier : opendir est la fonction de base permettant d'accéder à un répertoire afin d'en parcourir les fichiers et sous-dossiers. Elle prépare l'environnement en associant un descripteur de type répertoire à un chemin, ce qui est nécessaire avant d'utiliser des fonctions comme readdir ou closedir.
- Le descripteur est un identifiant symbolique du répertoire : Le paramètre dirhandle représente une sorte de "nom" temporaire désignant le répertoire ouvert. Ce handle est ensuite utilisé par d'autres fonctions pour lire ou fermer le répertoire. Il agit de manière similaire aux filehandles (<FILE>), mais pour les dossiers.
- Nécessite une vérification d'erreur après l'appel : Comme toute opération d'entrée/sortie, opendir peut échouer (par exemple si le répertoire n'existe pas ou si les permissions sont insuffisantes). Il est donc essentiel d'en vérifier le retour avec or die "Erreur : $!", afin d'éviter de poursuivre avec un handle invalide.
- Le chemin peut être absolu ou relatif : Le paramètre expression peut être une chaîne de caractères représentant soit un chemin absolu (/usr/bin) soit un chemin relatif (./mon_dossier). Cela permet d'adapter l'ouverture de répertoires selon le contexte du script sans changer de logique.
- Prépare l'usage de readdir pour explorer le répertoire : Une fois le handle de répertoire obtenu avec opendir, on peut utiliser readdir pour récupérer le contenu du dossier. Sans opendir préalable, readdir ne fonctionnerait pas, car il ne saurait pas quel répertoire lire. Les deux fonctions sont donc intimement liées.
- Le handle peut être une variable de type glob ou une référence : Perl permet une certaine flexibilité dans la déclaration du handle : il peut être un nom littéral (DIR), une variable de type glob (*DIR), ou même une référence (\*DIR). Cette souplesse est utile dans les contextes dynamiques ou récursifs, notamment quand plusieurs dossiers doivent être ouverts simultanément.
- Ne lit pas directement le contenu du dossier : Il est important de noter que opendir n'affiche ni ne retourne le contenu du dossier. Elle ne fait qu'ouvrir une session d'accès. La lecture des fichiers présents doit se faire via readdir, souvent dans une boucle, pour parcourir chaque élément.
- Doit être suivi d'un closedir pour libérer les ressources : Comme toute ressource ouverte, le handle obtenu par opendir doit être refermé avec closedir une fois qu'il n'est plus utilisé. Cela évite des fuites de ressources, surtout dans des scripts qui ouvrent de nombreux dossiers ou s'exécutent longtemps.
Exemple
Voici un exemple typique d'utilisation de cette fonction :
on obtiendra un résultat semblable à celui-ci :
1-$Recycle.Bin2-application
3-Boot
4-bootmgr
5-Config.Msi
6-Documents and Settings
7-install.ini
8-pagefile.sys
9-Program Files
10-Program Files (x86)
11-ProgramData
12-System Volume Information
13-Users
14-Windows
Voir également
Langage de programmation - Perl - Référence de procédures et fonctions - POSIX::opendir
Langage de programmation - PHP - Référence de procédures et fonctions - opendir
Langage de programmation - C pour Linux - Référence de procédures et fonctions - opendir
Références
La Bible Micro Application HTML & Développement Web, Stefan Munz, Wolfgang Nefzger, 2003, ISBN: 2-7429-2898-7, page 1156
Perl/CGI-Programmation avancée Grand Livre, Edition Micro Application, Rolf D. Stoll, 2001, ISBN: 2742919082, page 208
Dernière mise à jour : Dimanche, le 18 octobre 2015