Ca devrait aider, même si ce n'est plus vraiment d'actualité d'après la date du poste, ça aidera toujours si quelqu'un passe par là :
/****************************************************************/ /* */ /* FONCTION : Liste tous les fichiers, repertoires et */ /* sous-repertoire du chemin passé en paramétre, */ /* dans le fichier texte "fichier" defini lors */ /* de l'appel de la fonction. */ /* */ /* IN : Le premier parametre correspond au dossier dont */ /* le contenu va etre listé. Le second correspond */ /* au fichier texte qui va recevoir la liste. */ /* */ /* OUT : VOID */ /* */ /****************************************************************/ /* */ /* AUTEUR : P. KOCH (Avec l'aide de GLIPPER de CPPFr) */ /* */ /****************************************************************/ /* */ /* DATE MODIFICATION(S) AUTEUR */ /* */ /* 24/11/2008 Création P. KOCH */ /* */ /****************************************************************/
void listedd(char *CurrentDir, FILE *fichier) {
char chemin[MAX_PATH]; // Variable qui va contenir les chemins WIN32_FIND_DATA wData; // Structure d'information de fichier (utilisée pour obtenir le nom et la taille entre autre) HANDLE listing;
// Ajout de '*' à la fin du chemin pour FindFirstFile() sprintf (chemin, "%s*", CurrentDir); listing = FindFirstFile(chemin, &wData); // Suppression de '*' à la fin du chemin sprintf (chemin, "%s", CurrentDir);
if (listing != INVALID_HANDLE_VALUE) { do { if ((strcmp(wData.cFileName, ".."))&&((strcmp(wData.cFileName, ".")))) // On ignore les repertoire . et .. { if (wData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) // On verifi si c'est un repertoire { // Si c'est un repertoire, on recupere le nouveau chemin, et on va rentrer dedans... sprintf(chemin, "%s%s\\", CurrentDir, wData.cFileName); // On liste ce repertoire dans le fichier fprintf(fichier,"%s;%d\n",chemin,wData.ftLastWriteTime); // Ici on ecrit dans un fichier texte le resultat // On appel a nouveau la fonction listedd(chemin, fichier); // On reviens un repertoire en arrière int cpt = strlen(chemin)-2; while (cpt>0) { if (chemin[cpt] == '\\') { chemin[cpt+1] = '\0'; break; } cpt--; } } else // Si c'est un fichier, on liste son chemin dans le fichier
fprintf(fichier, "%s%s;%d\n", chemin,wData.cFileName,wData.ftLastWriteTime); // Ici on ecrit dans un // fichier texte le resultat } }while (FindNextFile(listing, &wData)); } FindClose(listing); }
Bonne journée
|