Bonsoir 
J'ai ce code C++ qui sert à lister le contenu d'un dossier pour l'insérer dans une XML qui elle même servira dans un lecteur mp3 en flash. Il marche parfaitement mais j'aimerais y ajouter une fonction : ne lister que les fichiers mp3 ! je vous montre le code complet dites moi si vous avez une idée ^^
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//fait la liste des fichiers d'un repertoire et l'enregistre dans un fichier xml
int main() {
HANDLE hfind;
WIN32_FIND_DATA wfd;
char **tab; int i=0;
char szAppPath[ MAX_PATH ] = "";
char chemin[MAX_PATH] = "";
//recherche du path du repertoire courant
GetModuleFileName( 0, szAppPath, sizeof( szAppPath ) - 1 );
printf("szapp %s\n", szAppPath);
//découpage de la partie qui nous intéresse (sans le nom listFiles.exe)
for(i=0;i<strlen(szAppPath)-14;i++) {
chemin[i] = szAppPath[i];
}
szAppPath[i] = '\0';
//ouverture du fichier xml à editer
FILE *f = fopen(strcat(chemin, " \\listFiles.xml "), "w+");
fprintf(f, "<database>\n");
// Liste le contenu du répertoire
hfind = FindFirstFile (strcat(strcpy(chemin, szAppPath), " \\\\ *.* "), &wfd );
if (hfind != INVALID_HANDLE_VALUE) {
do{
// vérifie si c'est un répertoire ou non
if (!( wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY )) {
// supprime l'extension avec le "." (4 caractères)
char *P=wfd.cFileName;
while(*P!='\0')P++;
P-=4;
*P='\0';
// inscris la ligne d'indexation du fichier trouvé
fprintf(f, "\t<Index mylabel=\"%s\" mydata=\"media/.../%s.mp3\"></Index>\n", wfd.cFileName, wfd.cFileName);
}
i++;
}while(FindNextFile( hfind, &wfd));
FindClose(hfind);
}
fprintf(f, "</database>");
//fermeture du fichier
fclose(f);
return 0;
}
Voila
(au passage merci beaucoup à Buno pour son aide dans la supression de l'extension des fichiers listés).
Merci d'avance