[Résolu] Problème avec la fonction findfirst ()
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 :
Code:
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);
} |
Head.h
Code:
1 2 3 4 5 6 7
|
#ifndef H_Head
#define H_Head
void affiche(char *);
#endif |
et sa définition :
Code:
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);
};
}; |
Voilà mon problème. Je pourrais faire appel à la fonction findfirst des Apis mais je souhaite comprendre le pourquoi du problème.
merci.
Ps : System Xp Pro compilateur BCC5.5
angI.