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

Visual C++ Discussion :

comment récuperer les fichiers et les sous repertoires d'un repertoire


Sujet :

Visual C++

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Points : 62
    Points
    62
    Par défaut comment récuperer les fichiers et les sous repertoires d'un repertoire
    je veux faire une méthode pour récuperer les sous repertoires et les fichiers d'un répertoire et les mettre dans deux listes :

    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
     
     void GetFiles(String^Direc)
     {
    array<String ^> ^ d;
    array<String ^> ^ f;
    List<String^>^ listf = gcnew List<String^>();
    List<String^>^ listd = gcnew List<String^>();
    f = Directory::GetFiles(Direc);
     for each (String ^ff in f)
    {
     listf->Add(f);
    }
     
     d = Directory::GetDirectories(Direc);
    for each (String ^dd in d)
     {
     listd->Add(d);
     }
     
     
     for each (String ^di in d )
     {
    GetFiles(di);
     
    }
     
     
     }
    mais j'ai un problème la liste ne prend pas des strings
    est ce que quelqu'un sait comment je pourrais faire?

    merci

  2. #2
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Points : 62
    Points
    62
    Par défaut
    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
    void GetFiles(String^Direc)
     {
    array<String ^> ^ d;
    array<String ^> ^ f;
    List<String^>^ listf = gcnew List<String^>();
    List<String^>^ listd = gcnew List<String^>();
    f = Directory::GetFiles(Direc);
     for each (String ^ff in f)
    {
     listf->Add(f);
    }
     
     d = Directory::GetDirectories(Direc);
    for each (String ^dd in d)
     {
     listd->Add(d);
     }
     
     
     for each (String ^di in d )
     {
    GetFiles(di);
     
    }
     
     
     }
    En fait ce que je veux à la fin c'est recuperer tous les sous repertoires(et les sous -sous repertoires ..) dans mon array d :
    et tous les fichiers (et les fichiers des sous repertoires ..) dans mon array f :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    array<String ^> ^ f;
    j'ai essayer de passer par une liste mais ca marche pas, j'ai une erreur comme qoi cette list ne prend pas les System::String

    donc comment faire ?

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Points : 62
    Points
    62
    Par défaut
    j'ai retrouvé l'erreur

    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
     
    void GetFiles(String^Direc)
     {
    array<String ^> ^ d;
    array<String ^> ^ f;
    List<String^>^ listf = gcnew List<String^>();
    List<String^>^ listd = gcnew List<String^>();
    f = Directory::GetFiles(Direc);
     for each (String ^ff in f)
    {
     listf->Add(ff);//au lieu de : listf->Add(f);
    }
     
     d = Directory::GetDirectories(Direc);
    for each (String ^dd in d)
     {
     listd->Add(dd);//au lieu de : listd->Add(d);
     }
     
     
     for each (String ^di in d )
     {
    GetFiles(di);
     
    }
     
     
     }

  4. #4
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Points : 62
    Points
    62
    Par défaut help!
    mtnt ca compile mais dans ma list je recupere pas les sous fichiers !!pourtant ma fct est recursive

    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
     
    List<String^>^ listf0 ;
    List<String^>^ listd0 ;
     void GetFiles(String^Direc)
    {
    array<String ^> ^ d;
    array<String ^> ^ f;
    String ^mydirec = Direc;
    List<String^>^ listf = gcnew List<String^>();
    List<String^>^ listd = gcnew List<String^>();
    f = Directory::GetFiles(Direc);
    for each (String ^ff in f)
     {
     listf->Add(ff);
    }
    d = Directory::GetDirectories(Direc);
    for each (String ^dd in d)
    {
     listd->Add(dd);
    }
     
     for each (String ^di in d )
    {
    GetFiles(di);
     
    }
    listf0 = listf;
    listd0 = listd;
     
     }
    j'ai remarqué que la listf et la listd à chaque boucle se remet à vide
    comment je pourrais résoudre ca ?

  5. #5
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Points : 62
    Points
    62
    Par défaut je bloque!
    Citation Envoyé par ryoussef19
    mtnt ca compile mais dans ma list je recupere pas les sous fichiers !!pourtant ma fct est recursive

    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
     
    List<String^>^ listf0 ;
    List<String^>^ listd0 ;
     void GetFiles(String^Direc)
    {
    array<String ^> ^ d;
    array<String ^> ^ f;
    String ^mydirec = Direc;
    List<String^>^ listf = gcnew List<String^>();
    List<String^>^ listd = gcnew List<String^>();
    f = Directory::GetFiles(Direc);
    for each (String ^ff in f)
     {
     listf->Add(ff);
    }
    d = Directory::GetDirectories(Direc);
    for each (String ^dd in d)
    {
     listd->Add(dd);
    }
     
     for each (String ^di in d )
    {
    GetFiles(di);
     
    }
    listf0 = listf;
    listd0 = listd;
     
     }
    j'ai remarqué que la listf et la listd à chaque boucle se remet à vide
    comment je pourrais résoudre ca ?
    j'ai tt essayer je suis toujours bloqué
    comment pourrais je ajouter une liste (listf et listd) dans (listf0 et listd0)??

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    l'exemple de la faq fonctionne. Copie colle le dans un nouveau projet console, et étudie le code

  7. #7
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Points : 62
    Points
    62
    Par défaut
    l'exemple de la faq fonctionne ..il affiche la liste des repertoires et des fichiers ..je l ai utilisé

    moi ce que je veux c'est recuperer les fichiers dans ma listf0 et les repertoires dans ma liste listd0

    mais le pb que ma listf et listd se reinitialisent à chaque fois !donc à la fin quand je fais :
    listf0=listf;
    listd0=listd;
    je recupere que les derniers (pas tt)

    c'est cela mon pb!

  8. #8
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Points : 62
    Points
    62
    Par défaut
    j'ai du passer par deux String et à chaque fois j'ajoute un nom de fichier + "\n"..du coup j'ai crée une liste manuellement
    et ca marche !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/08/2009, 14h51
  2. Réponses: 2
    Dernier message: 22/08/2007, 12h46
  3. Réponses: 4
    Dernier message: 08/09/2006, 13h17
  4. Réponses: 3
    Dernier message: 22/05/2006, 17h00

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