OVH Cloud OVH Cloud

recursivité

1 réponse
Avatar
Remi
Bonjour,

j'ai un petit problème avec une connerie ! J'aimerais parcourir tout les
fichier et sous dossier de c:\ par exemple. D'abord j'ai pensé a faire tout
simplement une fonction récursive qui utiliserai les fonctions
FindFirstFile, FindNextFile et FindClose. Lorsque je tombe sur un répertoire
je pourrais lancer le parcours sur ce répertoire. Mais comme le dossier peut
contenir un nombre enorme de sous-dossiers je risque d'arriver rapidement à
un stack overflow. Pour eviter cela, je met les nom des répertoire (pas leur
path entier) sur une stack maison (donc sur le heap) et quand j'ai traité
tout les fichier je regarde sur le stack si je dois revenir en arrière ou si
je dois parcourir un autre dossier. Cette méthode fonctionne mais après
quelques minutes mon programme peut atteindre des piques de 30 mégas. Je me
demande donc comment faire.

Merci d'avance :-)

1 réponse

Avatar
Christian ASTOR
Remi a écrit:


j'ai un petit problème avec une connerie ! J'aimerais parcourir tout les
fichier et sous dossier de c: par exemple. D'abord j'ai pensé a faire tout
simplement une fonction récursive qui utiliserai les fonctions
FindFirstFile, FindNextFile et FindClose. Lorsque je tombe sur un répertoire
je pourrais lancer le parcours sur ce répertoire. Mais comme le dossier peut
contenir un nombre enorme de sous-dossiers je risque d'arriver rapidement à
un stack overflow.



Il n'y a pas de problème.
Les fonctions de parcours de répertoires récursives de MS
(RecurseDirectory() et autres) ont toujours marché sans problème (eg
l'Explorer fait ça pour calculer la taille d'un dossier)