C++ parcours d'un répertoire & extention
Sneacke
-
sneacke -
sneacke -
Bonjour,
J'essaye de réaliser un script capable de parcourir de manière récursive le contenu d'un répertoire. CHECK
Je veux également pour voir lister le nombre de fichier trié par type à l'intérieur. C'est la qu'est mon probleme ? pointeur ? tableau ? je suis obligé d'en passer par la ?
Si vous avez une meilleur idée je suis tout ouie !
Exemple :
list C:\
txt 12
avi 1
wmv 3
Merci
J'essaye de réaliser un script capable de parcourir de manière récursive le contenu d'un répertoire. CHECK
Je veux également pour voir lister le nombre de fichier trié par type à l'intérieur. C'est la qu'est mon probleme ? pointeur ? tableau ? je suis obligé d'en passer par la ?
Si vous avez une meilleur idée je suis tout ouie !
Exemple :
list C:\
txt 12
avi 1
wmv 3
Merci
A voir également:
- C++ parcours d'un répertoire & extention
- Répertoire téléphonique gratuit - Télécharger - Bureautique
- Mes parcours google - Guide
- Pourquoi certains contacts disparaissent de mon répertoire - Accueil - Guide Android
- Commande dos copy repertoire et sous repertoire - Forum Logiciels
- Mon répertoire téléphonique sur google - Forum iPhone
2 réponses
Salut Sneacke,
Si tu es déjà parvenu à faire ton parcours récursif de répertoires et de fichiers, tu as fait le plus dur (surtout qu'il n'y a pas vraiment de moyen portable de le faire avec le C++ standard).
Ton problème est donc, pour chaque type de fichier d'un fichier obtenu, de comptabiliser le nombre de fichiers par extension.
Une façon de faire est d'utiliser map pour créer un tableau associatif.
http://www.cplusplus.com/reference/map/map/
Quelque chose, comme cela :
Dal
Si tu es déjà parvenu à faire ton parcours récursif de répertoires et de fichiers, tu as fait le plus dur (surtout qu'il n'y a pas vraiment de moyen portable de le faire avec le C++ standard).
Ton problème est donc, pour chaque type de fichier d'un fichier obtenu, de comptabiliser le nombre de fichiers par extension.
Une façon de faire est d'utiliser map pour créer un tableau associatif.
http://www.cplusplus.com/reference/map/map/
Quelque chose, comme cela :
#include <map> #include <string> #include <iostream> using namespace std; int main() { // je ne sais pas comment et où tu récupères tes // noms de fichiers. A partir de ce que tu récupères // détermine quelle est l'extension du fichier // on crée un objet "ext" qui mappe un string sur un entier map<string, int> ext; // disons, que le fichier trouvé comporte une extension .txt string ext_fich = "txt"; // on incrémente la valeur de l'entrée ext["txt"] ext[ext_fich]++; // on simule des incrémentations successives ext[ext_fich]++; ext[ext_fich]++; ext[ext_fich]++; ext[ext_fich]++; // maintenant, on trouve un .avi ext_fich = "avi"; ext[ext_fich]++; // on a aussi des .wmv ext_fich = "wmv"; ext[ext_fich]++; ext[ext_fich]++; ext[ext_fich]++; // un itérateur permet d'afficher le tableau // avec en prime un tri sur les clefs map<string, int>::iterator curr,end; for( curr = ext.begin(), end = ext.end(); curr != end; curr++ ) cout << curr->first << " : " << curr->second << endl; cout << "Il y a " << (int) ext.size() << " extensions différentes." << endl; // on en a terminé avec notre objet ext.~map(); return 0; }
Dal