Listage xml uniquement des mp3 en C++

Résolu
klitzounet
Messages postés
28
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
15 mai 2009
- 5 déc. 2007 à 21:23
klitzounet
Messages postés
28
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
15 mai 2009
- 5 déc. 2007 à 21:43
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, "
[file://\\listFiles.xml
\\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\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

2 réponses

Neo_Fr
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2
5 déc. 2007 à 21:32
Salut,
Remplace simplement cette ligne:
hfind = FindFirstFile(strcat(strcpy(chemin, szAppPath), " \\\\ *.* "), &wfd );
par celle la:
hfind = FindFirstFile(strcat(strcpy(chemin, szAppPath), " \\\\ *.mp3"), &wfd );

Neo_Fr
3
klitzounet
Messages postés
28
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
15 mai 2009

5 déc. 2007 à 21:43
Merci beaucoup je ne pouvais pas attendre meilleure réponse
C'était simple mais il fallait le voir ^^
0