cs_kiitos
Messages postés34Date d'inscriptionvendredi 10 mars 2006StatutMembreDernière intervention14 septembre 2008 7 sept. 2008 à 21:24
Ouais c'est ça que je veux faire, j'ai essayé plein de sources différentes mais ça ne marche pas et dans le meilleur des cas il y a une console qui apparait et s'éteind immédiatement malgrés les getch() que j'ai mis.
Vous n’avez pas trouvé la réponse que vous recherchez ?
chtitpierre78
Messages postés30Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention29 décembre 2008 25 nov. 2008 à 11:08
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);
}