IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Récursivité d'un programme


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 9
    Par défaut Récursivité d'un programme
    Bonjour,


    Je souhaite créer un programme récurssif qui permet d'afficher tous les fichiers (dossiers ou non) à partir d'un répertoire racine.
    Pour cela j'utilise l'API Windows.

    J'ai essayer d'introduire la récurssivité, mais mon programme ne fonctionne pas : je pense que c'est du au fait que mon "path" est toujours le même à chaque fois que la fonction est appelée.... mais je dois avouer que je m'y perd un peu.

    Est-ce-que quelqu'un peut me donner un petit coup de pouce ?

    Merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #include <string.h>
     
    #define path "C:\\Documents and Settings\\Florian\\Mes documents\\les truc a moi\\epf\\3A\\LanguageC"
    #define anti "\\"
     
    // Prototype de la fonction
    void RechArborescence(HANDLE hfind);
     
     
    //____________________Programme principal___________________________________
     
    int main(int argc, char *argv[])
    {
    // Déclaration des variables      
    HANDLE hfind;
    WIN32_FIND_DATA wfd;
    hfind = FindFirstFile(path, &wfd); // Répertoire racine
     
    RechArborescence(hfind);
     
    system("PAUSE");	
    return 0;
    }
     
    //______________Définition de la fonction________________________________
     
    void RechArborescence(HANDLE hfind)
    {
    // Déclaration des variables
    WIN32_FIND_DATA wfd;     
     
    if (hfind != INVALID_HANDLE_VALUE)
      {
      do
        {
        if (wfd.cFileName[0] != '.')
          {
          // vérifie si c'est un répertoire ou non
          if ( wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) 
            {
            printf("c'est un dossier :  ");
            printf ("%s\n", wfd.cFileName);
            // c'est la qu'on introduit notre récursivité
            strcat(path,anti);
            strcat(path,wfd.cFileName);
            RechArborescence(SetCurrentDirectory(path));
            }
          printf ("%s\n", wfd.cFileName);  
          }
        }while (FindNextFile(hfind, &wfd));
     
      // Recherche terminer, ferme la recherche
      FindClose(hfind);
      printf ("Recherche terminee\n");
      }
     
      else
        {
        printf ("Aucun fichier trouve\n");
        }
    }

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Par défaut
    Le code me paraît correct.

    Ajoute un debug avant ton appel récursif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf("notre nouveau path: %s\n",path);

Discussions similaires

  1. Réponses: 8
    Dernier message: 15/09/2014, 14h11
  2. Réponses: 2
    Dernier message: 20/12/2011, 21h18
  3. Aide programmation python récursivité
    Par bibi34 dans le forum Général Python
    Réponses: 2
    Dernier message: 29/11/2010, 00h29
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo