wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 2
Pub hébergeur
Pourquoi cette pub ?

Valid XHTML 1.0 Transitional

Valid CSS2

Menu Snippets (navigation):
Pages: 1    Accueil » Snippets » Fichiers - Dossiers - Disques
» Lister le contenu d'un dossier : méthode N°1
Détails du snippet : Lister le contenu d'un dossier : méthode N°1
Informations sur l'auteur de ce snippet :


Hors ligne
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1368
Snippets: 25
Tutoriels: 6
Introduction / Description :
Bonjour à tous.
Voici la première technique pour énumérer le contenu d'un dossier, en utilisant la méthode : wxDir::GetAllFiles(...)
Le résultat est directement récupéré dans un wxArrayString que l'on lui passe en paramètre.
Avantages de cette méthode :
- Elle est très simple à mettre en oeuvre.
Inconvénients :
- Il faut éviter de l'utiliser si le répertoire à lister contient beaucoup de fichier, car tout son contenu est stocké en mémoire dans un wxArrayString
- Il n'est pas possible d'énumérer que les dossiers contenus dans le répertoire.
- Il faut attendre que la lecture du dossier (et éventuellement de ses sous-dossiers) soit terminée pour pouvoir traiter la liste obtenue
- Il n'est pas possible d'interrompre l'énumération en cours de route, ou d'afficher l'état d'avancement du travail en cours.
Contenu du snippet :
1er exemple : lister tous les fichiers et tous les dossiers (ainsi que leur contenu) du répertoire C:\Temp

Code wxWidgets:

wxArrayString contenu;
wxDir::GetAllFiles(_T("C:\\Temp"),&contenu,_T("*.*"),wxDIR_FILES|wxDIR_DIRS);
if (!contenu.Count())
{
    wxMessageBox(_T("Le dossier est vide"));
}
 

Vous noterez, dans le code ci-dessus, le paramètre _T("*.*") qui permet de passer des "jockers" à la fonction.

2ème exemple : lister tous les fichiers ".jpg" contenus dans le dossier /home/username

Code wxWidgets:

wxArrayString contenu;
wxDir::GetAllFiles(_T("/home/username"),&contenu,_T("*.jpg"),wxDIR_FILES);
if (!contenu.Count())
{
    wxMessageBox(_T("Le dossier ne contient pas de fichiers '.jpg'"));
}
 

Vous noterez, cette fois-ci, le dernier paramètre qui spécifie de n'énumérer que les fichiers (et donc, de ne pas regarder dans les sous-dossiers).
Explications finales :
J'espère avoir été suffisamment clair.
N'hésitez pas à pousser une gueulante si ce n'est pas le cas.
encore une fois, gardez bien à l'esprit que tous les noms de fichiers/dossiers (avec leur chemins complets) sont stockés dans le wxArrayString, et que cela peut vite utiliser beaucoup demémoire.

@+
Xav'
Commentaires

Il n'y a pas encore de commentaire pour ce snippet.
Menu Snippets (navigation):
Pages: 1    Accueil » Snippets » Fichiers - Dossiers - Disques
» Lister le contenu d'un dossier : méthode N°1