Fichier qui affiche dans la console tout les fichiers et dossier du lecteur C

[Résolu]
Signaler
Messages postés
34
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
14 septembre 2008
-
Messages postés
30
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
29 décembre 2008
-
Comment faire un fichier qui affiche dans la console tout les fichiers et dossier du lecteur C ?

6 réponses

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Un "fichier" ? Un exécutable tu veux dire ?

Sous windows:
FindFirstFile
FindNextFile

et FindClose lorsque terminé.

Pour des exemples, recherche sur ce site. T'as déjà un exemple ici:
http://www.cppfrance.com/codes/NENGINE-MOTEUR-RECHERCHE-FICHIER-UPDATE_17481.aspx

C++ (@++)<!--
Messages postés
34
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
14 septembre 2008

Je voudrais faire un programme qui liste tout les fichiers du lecteur C. Pas seulement les exe.
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Où ai-je dis que ça listait seulement les .exe ?

Je parlais de ceci:

"Comment faire un fichier qui affiche dans la console tout les fichiers et dossier du lecteur C ?"

Comment faire un exécutable/code qui affiche dans la console tout les fichiers et dossier du lecteur C ?

C++ (@++)<!--
Messages postés
34
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
14 septembre 2008

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.
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
Les 2 fonctions dans le 1er message de SAKingdom devraient d'aider.

http://c.developpez.com/faq/?page=fichiers#FICHIERS_dir_list
Messages postés
30
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
29 décembre 2008

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