Lire un fichier en C

Résolu
Bonjour à tous!
Voila j'ai écrit un programme en C qui me lit des fichiers dans un dossier, mais j'aimerais que ce programme essai de lire TOUT les fichier du répertoire.est-ce possible? si oui, comment faire?
Merci de vos réponses!
--
Plus t'avance moins vite, moins t'avance plus vite
Configuration: Windows XP
Internet Explorer 7.0

11 réponses

  1. Salut,

    Le programme connait les noms et le nombre de fichiers, ou il doit scanner le dossier et tout lire ?
    0
    1. Il doit scanner le dossier, et lire tout les fichiers!
      Oui je sais je suis exigeant ;)
      0
      1. J'ai eu ce bout de code qui, apparament, liste les fichiers d'un répertoire, mais je ne sais pas du tout comment l'utiliser!
        public void ListeFileDirectory(string repertoire)
        
        {
        
                string[] files;
        
                // pour avoir les noms des fichiers et sous-répertoires
        
                files = Directory.GetFileSystemEntries(repertoire);
        
                int filecount = files.GetUpperBound(0) + 1;
        
                for (int i = 0; i  i++)
        
                Console.WriteLine(files[i]);
        
        }
        
        

        help!!!!
        0
        1. Contributeur
          Si je comprend bien ce bou de code, il récupère le nom des fichiers dans files, un tableau de string, chaque élement de files est un nom de fichier.
          Donc :
          for(int i=0;i<filecount;i++)tableau_fichiers[i]=fopen(files[i],"r");
          0
          1. Merci Char sniper mais je voudrais savoir quoi mettre avant, comme include etc... là je suis completement paumé!
            0
            1. Contributeur
              Déjà à la tête du truc, je dirai que c'est du windows.
              Donc include windows.h
              Ensuite, il te faut les string : include <string>
              et à la place de string, tu met std::string, ou tu met "using namespace std" au début du prog.
              Et encore, le public tout au début me fait craindre que le bout de code que tu es trouvé soit en fait du java. dsl
              --
              Salutation !
              Char Snipeur
              0
              1. C'est vrai que maintenant que tu le dit, le public me fait penser a du java, je n'en sais rien! là je suis vraiment paumé mais merci quand meme!
                0
                1. Il ne vous plait pas le code que je vous ai indiqué. Il marche nickel, le nom du fichier se trouvant dans File.cFileName ...
                  0
                  1. #include <windows.h>
                    
                    WIN32_FIND_DATA File;
                    HANDLE hSearch;
                    BOOL re;
                    
                    hSearch=FindFirstFile("*.*", &File);
                    if(hSearch ==  INVALID_HANDLE_VALUE)
                    {
                       return FALSE;
                    }
                    
                    re=TRUE;
                    do
                    {
                       /* Traitement */
                       re = FindNextFile(hSearch, &File);
                    } while(re);
                    
                    FindClose(hSearch);
                    return TRUE;

                    voila le code...
                    Alors si je comprend bien, il va chercher tout les fichiers qui ont comme nom "qqch.qqch"et le stock dans file? c'est sa?
                    Mais après je ne voit pas comment mettre par exemple un printf pour m'afficher tout les fichiers qu'il a trouver!

                    0
                    1. Et je tiens à préciser que le code compilé tel quel ne marche pas... il faut rajouter un
                       main(){
                      --code
                      }

                      pour que sa marche...enfin je pense le compilo ne met pas d'erreur! mais je ne sais toujours pas ce que sa retourne!
                      0
                    2. Ben oui, faut un main ....
                      Ca te va mieux comme ça :
                      #include <windows.h>
                      #include <stdio.h>
                      
                      bool Affiche()
                      {
                        WIN32_FIND_DATA File;
                        HANDLE hSearch;
                        bool re;
                      
                        hSearch=FindFirstFile("*.*", &File);
                        if(hSearch ==  INVALID_HANDLE_VALUE)
                        {
                           return false;
                        }
                      
                        re=true;
                        do
                        {
                           /* Traitement */
                           printf("%s\n",File.cFileName);
                      
                           re = FindNextFile(hSearch, &File);
                        } while(re);
                      
                        FindClose(hSearch);
                        return true;
                      }
                      
                      void main()
                      {
                        Affiche();
                      }
                      
                      0
                  2. Contributeur
                    Il doit bien exister une fonction C classique sans passer par ces fonctions Win de merde avec ces Handle à la !$*/!
                    déjà j'ai trouvé comment changer de répertoire dans : sys/file.h
                    regarde là eventuellement :
                    https://www.thecodingforums.com/threads/iterate-over-the-files-of-a-directory.291578/
                    autre solution, regarde l'implementation de ls sous linux ou du coté du répertoire.
                    En ouvran le répertoire comme un fichier, peut être que les fichiers y sont listé .?
                    0

                    Discussions similaires

                    question pix mot caché

                    7 réponses