Bonjour;
Je tente déséspérement de lister le contenu d'un dossier avec la fonction findfisrt() mais a chaque appel, ma variable contenant le chemin est tronqué !!??
Mon projet ce compose comme suit :
Head.h
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 //Main.cpp #include <stdio.h> #include <string.h> #include "Head.hpp" void main( int argc, char **argv ) { /* Program entry point */ char * path = new char(256); strcpy(path, argv[1]); //Ici je récupère le chemin eg : D:\structure strcat(path, "\\*"); //Ajout de la chaine "\*" affiche(path); }
et sa définition :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #ifndef H_Head #define H_Head void affiche(char *); #endif
Voilà mon problème. Je pourrais faire appel à la fonction findfirst des Apis mais je souhaite comprendre le pourquoi du problème.
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 #include <dir.h> #include <stdio.h> #include "head.hpp" void affiche(char * source){ int ret=0; ffblk * s = new ffblk; // Ici source = d:\structure\*, ce qui est tout a fait normal ret = findfirst(source, s, FA_DIREC); //aprés l'appel a findFirst() source = d:\structure + des caractère ascii // ret = -1 ce qui indique une erreur //la boucle while ne sera jamais exécuté while(!ret){ printf("\n %s - %d", s->ff_name, ret); findnext(s); }; };
merci.
Ps : System Xp Pro compilateur BCC5.5
angI.
Partager