Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
881 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  problème de parcours

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème de parcours

n°1325319
d'jo
Posté le 14-03-2006 à 18:28:15  profilanswer
 

Bonjour g un petit sous je souhaite parcourir tous les sous dossiers et fichiers à partir d'une racine. Pb mon prog reviens au dossier précédant et je ne comprend pas pourquoi. Il semblerait que ce soit "FindNextFile (hFind, &FindData)" qui me cause problème mais je ne trouve pas de solutions.  I need help pleaz !!
 
voila mon code

Code :
  1. #include <windows.h>
  2. #include <stdio.h>
  3. void AfficherListeFichiers (char Dossier[MAX_PATH]);
  4. int main(void)
  5. {
  6. char Dossier[MAX_PATH]="C:\\test";
  7. int a;
  8. AfficherListeFichiers (Dossier);
  9. scanf("%d",&a);
  10. return EXIT_SUCCESS;
  11. }
  12. void AfficherListeFichiers (char Dossier[MAX_PATH])
  13. {
  14. HANDLE hFind;
  15. WIN32_FIND_DATA FindData;
  16. // Change de dossier  
  17. SetCurrentDirectory (Dossier);
  18. // Début de la recherche  
  19. hFind=FindFirstFile ("*.*", &FindData);
  20. if (hFind!=INVALID_HANDLE_VALUE)
  21. {
  22. printf("%s\n",FindData.cFileName);
  23.      // Fichiers suivants  
  24.      while (FindNextFile (hFind, &FindData))
  25.       {
  26.         printf("%s\n",FindData.cFileName);
  27.        
  28.         if ((FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
  29.            {
  30.        Dossier=FindData.cFileName;
  31.        printf("%s\n",FindData.cFileName);
  32.            // Change de dossier  
  33.            SetCurrentDirectory (Dossier);
  34.            // Début de la recherche  
  35.             hFind=FindFirstFile ("*.*", &FindData);
  36.              if (hFind!=INVALID_HANDLE_VALUE)
  37.                 {
  38.                 printf("%s\n",FindData.cFileName);
  39.                 // Fichiers suivants  
  40.                 while (FindNextFile (hFind, &FindData))
  41.                       {
  42.                        printf("%s\n",FindData.cFileName);
  43.                       }
  44.                 }
  45.             }
  46.     }
  47. }
  48. // Fin de la recherche  
  49. FindClose (hFind);
  50. }


 
merci

mood
Publicité
Posté le 14-03-2006 à 18:28:15  profilanswer
 

n°1325350
Trap D
Posté le 14-03-2006 à 18:59:38  profilanswer
 

Pourquoi ne fais-tu pas une fonction récursive ??

n°1325354
breizhbugs
Posté le 14-03-2006 à 19:01:13  profilanswer
 

salut,

Citation :


hFind=FindFirstFile ("*.*", &FindData);  


As tu beaucoup de repertoire qui ont un "point" (*.*) dans leur nom?

n°1325485
d'jo
Posté le 14-03-2006 à 21:47:31  profilanswer
 

oui le but étant de recupèrer tous les .txt dans tous les sous fichiers

n°1325495
Trap D
Posté le 14-03-2006 à 22:11:55  profilanswer
 

En général on saute les répertoires particuliers "." et ".." qui ont une signification particulière.

n°1325508
d'jo
Posté le 14-03-2006 à 22:27:07  profilanswer
 

ok mais comment fais tu pour les éviter ??


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  problème de parcours

 

Sujets relatifs
probleme de réléchargement de fichierProbleme de tableau
probleme scrol bar( svp de l'aide)[CSS] pseudo-element : problème...
Problème pour écrire dans un fichierProbleme Java ou Fai?
[Problème] [mediawiki] Comment uploader beaucoup d'imagesProbleme d'affichage avec IE
Probleme de placement avec float[C++/STL] list et parcours avec un itérateur : problème
Plus de sujets relatifs à : problème de parcours


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR