Liste récursive des fichiers contenue dans un dossier
Résolu/Fermé
astrocurieux
Messages postés
334
Date d'inscription
mardi 24 février 2015
Statut
Membre
Dernière intervention
29 novembre 2019
-
Modifié par astrocurieux le 22/06/2016 à 12:24
astrocurieux Messages postés 334 Date d'inscription mardi 24 février 2015 Statut Membre Dernière intervention 29 novembre 2019 - 29 juil. 2016 à 09:37
astrocurieux Messages postés 334 Date d'inscription mardi 24 février 2015 Statut Membre Dernière intervention 29 novembre 2019 - 29 juil. 2016 à 09:37
A voir également:
- Liste récursive des fichiers contenue dans un dossier
- Liste déroulante excel - Guide
- Téléchargez cette archive (dossier compressé). en extraire tous les fichiers dans un dossier local. quel fichier contient l’expression trouverpix ? ✓ - Forum Windows
- Wetransfer gratuit fichiers lourd - Guide
- Mettre un mot de passe sur un dossier - Guide
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
1 réponse
hopelan
Messages postés
95
Date d'inscription
dimanche 12 juin 2016
Statut
Membre
Dernière intervention
16 janvier 2018
85
1 juil. 2016 à 14:27
1 juil. 2016 à 14:27
Bonjours,
Pour ton problème, je pense que tu te complique la tâche. Si tu veut seulement loguer dossier par dossier avec un log dans chaque dossier, et bien tu peut reprendre les algos du recherche de fichier.
L'idée c'est d'optimiser les ressources avec du multithreading.
=> Tu crée une fonction "BrowseFolder(std::string& path)" qui parcourt le dossier renseigné en chemin, crée un fichier log.txt et y inscrit l'ensemble des fichiers et dossiers trouvés (via d'autres fonction éventuellement pour alléger le code)
=> Ensuite, si cette fonction trouve un dossier, elle démarre un nouveau thread dans lequel elle s’appelle avec en paramètre le chemin de ce dossier. Elle continue ensuite sa boucle sur les fichiers jusqu’à qu'il ne reste aucun fichiers ou dossier. Une fois qu'elle termine, le thread dépile et se ferme jusqu’à ce qu'il ne reste plus que le thread principal. Et la tu fait ce que tu veut pour la fin du programme.
(bien sur le multitread est facultatif, la fonction peut très bien s'appeler elle même sans nouveau thread mais c'est moins rapide bien que ce soit moins énergivore.)
Pour ton problème, je pense que tu te complique la tâche. Si tu veut seulement loguer dossier par dossier avec un log dans chaque dossier, et bien tu peut reprendre les algos du recherche de fichier.
L'idée c'est d'optimiser les ressources avec du multithreading.
=> Tu crée une fonction "BrowseFolder(std::string& path)" qui parcourt le dossier renseigné en chemin, crée un fichier log.txt et y inscrit l'ensemble des fichiers et dossiers trouvés (via d'autres fonction éventuellement pour alléger le code)
=> Ensuite, si cette fonction trouve un dossier, elle démarre un nouveau thread dans lequel elle s’appelle avec en paramètre le chemin de ce dossier. Elle continue ensuite sa boucle sur les fichiers jusqu’à qu'il ne reste aucun fichiers ou dossier. Une fois qu'elle termine, le thread dépile et se ferme jusqu’à ce qu'il ne reste plus que le thread principal. Et la tu fait ce que tu veut pour la fin du programme.
(bien sur le multitread est facultatif, la fonction peut très bien s'appeler elle même sans nouveau thread mais c'est moins rapide bien que ce soit moins énergivore.)
1 juil. 2016 à 14:46
plutôt.
29 juil. 2016 à 09:37
je suis desolé de mon temps de reaction pour vous repondre.
je n'avait pas pensé au tread, c'est une bonne idée que je garde en téte.
mon algo fonctionne deja sur la base du recurcif, mais comporte quelque bug que je doit encore résoudre .
je reviendrais vers vous quand j'aurais de nouveau ce programme en téte.