Bonjour,
j'aimerai lister le contenu d'un repertoire dans un tableau de char. Mon pb, c'est que lorsque je le fais, j'ai mon tableau qui ne se rempli pas correctement. Pour le premier fichier, il met le nom du premier fichier dans la premier ligne du tableau, pour le second nom de fichier, il le met sur la 1er et la 2e, et ainsi de suite. Ce qui fait, qu'a la fin, j'ai que le nom du dernier fichier en autant de fois dans le tableau qu'il y a de fichier total.
Voila mon code, j'avais essaye aussi les listes chainees, j'ai eu le meme pb, je pensais que ca venaient de code, mais en fait non, voila le dernier code, c'est une methode pourtant classique et sans complexite, mais ca fonctionne pas. Je vois pas d'ou vient l'erreur. Peut-etre vient-elle du mallocage. J'ai vraiment tout fait d'une methode la plus simple possible pour voir ou est l'erreur, mais rien.
WIN32_FIND_DATA Fichier;
HANDLE Search;
int Get_Number_File_In_Directory()
{
WIN32_FIND_DATA Fich;
HANDLE Seek;
int nbfile=0;
Seek = FindFirstFile("*.*", &Fich);
if (Seek != INVALID_HANDLE_VALUE)
{
nbfile = nbfile + 1;
while (FindNextFile(Seek, &Fich))
{
nbfile = nbfile + 1;
}
}
return nbfile-1;
}
void main()
{
int i, nbfile = 0, Etage = 0;
char **List;
nbfile = Get_Number_File_In_Directory();
List = malloc((nbfile) * sizeof(unsigned char **));
Search = FindFirstFile("*.*", &Fichier);
if (Search != INVALID_HANDLE_VALUE)
{
ListMP3.The_List[Etage] = Fichier.cFileName;
while (FindNextFile(Search, &Fichier))
{
Etage = Etage + 1;
ListMP3.The_List[Etage] = Fichier.cFileName;
}
}
FindClose(Search);
printf("\n");
for (i=0; i<=nbfile; i = i +1)
{
printf("%s\n", ListMP3.The_List[i]);
}
printf("\n");
return;
}
Merci a tous ceux qui vont m'aider.