help avec la classe CFileFind? [VC++] - C++ - Programmation
Marsh Posté le 02-01-2003 à 12:35:15
Simple lorque tu trouve un fichier teste si c un fichier ou un folder (File.IsFolder je crois), si c un folder, tu relance ta fonction de listage en partant de ce folder. Une fonction ecursive koi ...
Code :
|
Marsh Posté le 02-01-2003 à 13:19:46
merci
j'ai tester ca marche mieux
seul truc c que ca ne va pas parcourir tous les sous repertoire
exemple dans windows tu as le repertoire options qui lui meme contient le repertoire cabs
en faite c une question de nivo de profondeur
je v arranger ca je pense
Marsh Posté le 02-01-2003 à 13:51:49
euh si desole ...
le fait de rappeler la fonction avec une nouvelle racine relance le truc ...
Parcontre oui, il fo peut etre changer les param du insert ds le treeview pour afficher l'arborescence proprement.
Marsh Posté le 02-01-2003 à 13:54:28
ba ecoute je te remercie de ton aide encore une fois
mais je viens de reteste et la fonction va dans un repertoire puis un sous rep et c tout elle ne va pas plus loin
enfin c ce que j'ai constater
Marsh Posté le 02-01-2003 à 14:01:12
bizarre theoriquement ... ca devrait marcher !!
t'as bien verifier qu'y avait + d'un sousrep ...
Marsh Posté le 02-01-2003 à 14:05:22
en faite je viens de tester avec des messagesbox
et le truc c que dans newroot tu as par exemple:
mesdocumentC:\mesdocument et c le C:\ qui ce met au millieu
Marsh Posté le 02-01-2003 à 14:06:46
oui j'ai bien verifier
je n'ai qu'un niveau de profondeur(j'entend par la un repertoire puis un sous rep mais apres si y'a d'autres sous rep et bien il y va pas)
Marsh Posté le 02-01-2003 à 16:27:44
ah OK c'est une erreur de ma part.
Faut pas faire
Code :
|
mais
Code :
|
juste recuperer le nom pas le chemin complet
Marsh Posté le 03-01-2003 à 09:44:39
ah ok
mais a quel endroit tu modifie ca?
while(filefind.FindNextFile())
{
//on cherche le prochain fichier si il existe
//on recupere son nom
//[#c63800]tu change ici?
path=filefind.GetFilePath();
//on l'affiche dans le tree view
m_CtlTree.InsertItem(path,0,0);
// si c un directory, on repart.
if( filefind.isDirectory() )
{
CString newroot;
//[#d42a00]ou bien ICI?
newroot = root + path;
recursiveFileFind( newroot );
Marsh Posté le 03-01-2003 à 09:59:39
Bizarrement dans root je n'ai rien
je viens de verifier avec un MessageBox.
donc quand je concatene et bien ca me concatene rien avec le nom
ce qui fait que je n'ai pas le bon chemin
Marsh Posté le 02-01-2003 à 10:37:58
Voila Je voudrais lister tous le contenu mon disque dur avec repertoire et sous repertoire afin de les mettre dans un treeview
mais j'ai un peu de mal avec la fonction pour lister mon disque
pour l'instant j'ai fait ca:
CFileFind filefind;
CString path;
if(filefind.FindFile("c:\\*.*" ))
{
if(filefind.FindNextFile())
{
path=filefind.GetRoot();
m_CtlTree.InsertItem(path,0,0);
while(1)
{
//on cherche le prochain fichier si il existe
if(filefind.FindNextFile())
{
//on recupere son nom
path=filefind.GetFilePath();
//on l'affiche dans le tree view
m_CtlTree.InsertItem(path,0,0);
}
else
break;
}
}
}
Donc la je liste mon disque a partir de la racine avec les nom de repertoire et les fichiers
maintenant je voudrais faire la suite c a d listé les sous repertoire et leur contenu
Et la j'avoue que je bloque un peu
de l'aide serait le bienvenu