Aide ListBox MFC

Signaler
Messages postés
45
Date d'inscription
samedi 28 avril 2007
Statut
Membre
Dernière intervention
3 décembre 2009
-
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
-
Bonjour à tous,
je suis en train de réaliser un client FTP, j'ai réussi à afficher les fichiers et dossiers présents dans mon C:/ avec le code suivant :

CFileFind Find;

// Change de répertoire

SetCurrentDirectory ("C:/");

// Début de la recherche

BOOL bWorking=Find.FindFile ("*.*");

// On affiche les fichiers et les dossiers
while (bWorking)

{

bWorking = Find.FindNextFile();

// On affiche lesfichiers et dossiers dans la liste
m_liste.AddString(Find.FindNextFile());

}

// Fin de la recherche

Find.Close ();

Cependant j'aimerais bien dissocier les fichiers et les dossiers afin d'afficher les dossiers puis les fichiers dans la meme listbox.
J'ai donc fait deux boucles pour parcourir mon C:/ deux fois (fichiers puis dossiers) , mais je  n'arrive a afficher que le contenu de la premiere boucle.

Je pense que le probleme est du au fait que je ne reviens pas au point de départ après la premiére boucle.
Mais je n'arrive pas à le faire. Est-ce que quelqu'un aurait une idée sur la façon de s'y prendre.

Merci d'avance.

1 réponse

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
La méthode IsDirectory de la classe CFindFile retournera TRUE si le fichier trouvé est un répertoire.

Ensuite:

bWorking = Find.FindNextFile();
m_liste.AddString(Find.FindNextFile());

Tu sautes un fichier par tour de boucle en faisant de la sorte.
Il faut faire:
 
bWorking = Find.FindNextFile();

m_liste.AddString(Find.GetFileName());

ou


m_liste.AddString(Find.GetFilePath());

si tu veux avoir le chemin complet.

C++ (@++)<!--