1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
struct listeplaylist *Cherche_playlists(char racine[], char chemin[],
struct listeplaylist *pdeb, char extension[5])
{
WIN32_FIND_DATA Dossier;
HANDLE Recherche;
boolean re=TRUE;
char *dosscour;
struct listeplaylist pcour;
strcat(chemin,racine);
printf("%s\n", chemin);
if(SetCurrentDirectory(racine)==0)
return(NULL);
Recherche=FindFirstFile("*.*", &Dossier);
re = FindNextFile(Recherche, &Dossier);
re = FindNextFile(Recherche, &Dossier);
while (re)
{
if (Dossier.dwFileAttributes==FILE_ATTRIBUTE_DIRECTORY)
{ //appelle récursif de la fonction pour parcourir ce sous-dossier
dosscour=(char*) calloc(strlen(chemin)+2,sizeof(char));
strcpy(dosscour,chemin);
strcat(dosscour,"/");
pdeb=Cherche_playlists(Dossier.cFileName, dosscour, pdeb, extension);
SetCurrentDirectory("..");
}
if (strcmp(&Dossier.cFileName[strlen(Dossier.cFileName)-4],extension)==0)
{
printf(" Playlist trouvée : %s\n",Dossier.cFileName);
dosscour=(char*) calloc(strlen(chemin)+strlen(Dossier.cFileName)+2,sizeof(char));
strcpy(dosscour,chemin);
strcat(dosscour,"/");
strcat(dosscour,Dossier.cFileName);
pcour.chemin=(char*) calloc(strlen(dosscour)+1,sizeof(char));
strcpy(pcour.chemin,dosscour);
pcour.psuiv=pdeb;
pdeb=&pcour;
}
re = FindNextFile(Recherche, &Dossier);
}
FindClose(Recherche);
return(pdeb);
} |
Partager