Partage
  • Partager sur Facebook
  • Partager sur Twitter

Création d'un explorateur de fichier en c++

Création d'un explorateur de fichier en c++

    2 novembre 2018 à 14:17:13

    Bonjour !!!!!!!

    Je voudrais créer un explorateur de fichier.

    J'aurais besoin d'un fonction qui me permettrais de pourvoir voir les dossiers dans mon PC .

    Voici un exemple:

    Imaginons que ma fonction se nomme :

    RechercheDossiers(string directorie);

    Donc si je fais ça -> RechercheDossiers(C:/Users/Uthilaisateur/Document); -> je voudrais qu'elle me renvoie tous les fichiers qu'il y a dans mon dossier:

    Obj

    FichierText

    manger.txt

    azerty.pdf

    ...

    Voilà

    Merci de me répondre !!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    -
    Edité par Titicplusplus 2 novembre 2018 à 14:17:59

    • Partager sur Facebook
    • Partager sur Twitter
      2 novembre 2018 à 14:53:22

      Merci de cette réponse Ksass'Peuk !!!!!!!!!!!

      Le problème s'est que code blocks ne reconnait pas le header <filesystem>.

      Si tu as une réponse merci de me le dire !!!!!!!!

      -
      Edité par Titicplusplus 7 novembre 2018 à 19:11:22

      • Partager sur Facebook
      • Partager sur Twitter
        5 novembre 2018 à 9:00:49

        Salut,

        c'est hyper agressif d'enchainer les "!" à la fin de tes phrases !!!!!!!!!!!!!

        Comme on peut voir sur la page de la doc, <filesystem> a été introduit dans le C++17, il faut que ton compilateur soit configuré pour suivre cette norme, il y a probablement une case à cocher ou une zone texte où tu peux entrer `-std=c++17` dans l'IDE.

        Quel compilateur utilisez-vous ? dans quelle version ?

        Si ce n'est pas possible d'utiliser le standard adéquat, vous pouvez toujours utiliser la lib boost dont il est issu.

        • Partager sur Facebook
        • Partager sur Twitter
        Dream on, Dream on, Dream until your dream comes true
          5 novembre 2018 à 9:07:43

          Malheureusement le support de filesystem est assez peu répandu. Même GCC a encore besoin de se lier à libstdc++fs car considéré comme expérimental.
          • Partager sur Facebook
          • Partager sur Twitter

          git is great because Linus did it, mercurial is better because he didn't.

            5 novembre 2018 à 9:20:01

            Code::Block j'imagine que vous etes sous Windows, utilisez plutot Boost, cela sera moins de galere.

            Ou bien utilisez un autre compilateur.

            • Partager sur Facebook
            • Partager sur Twitter

            Architecte logiciel - Software craftsmanship convaincu.

              7 novembre 2018 à 18:10:40

              Coucou

              Voilà, j'ai téléchargé Boost 1.68; le truc, c'est que ça ne marche pas.

              J'ai mit dans l'éditeur de lien :clic droit projet / Build Option / nom projet / search directories /Compiler / j'ai mit comme lien C:\Users\thiba\Downloads\boost_1_68_0\boost_1_68_0\libs / et j'ai fait la même chose avec le linker.

              Et lorsque je compile ce programme:

               #include <boost / lambda / lambda.hpp>
               #include <iostream>
               #include <itérateur>
               #include <algorithme>
              
               int main()
               {
                   using namespace boost :: lambda;
                   typedef std :: istream_iterator <int> dans;
              
                   std :: for_each (
                       dans (std :: cin), dans (), std :: cout << (_1 * 3) << "");
               }
              

              Il me dit qu'il ne trouve pas le fichier.

              Le problème est que je ne trouve pas un site récent qui parle de l'installation de Boost avec Code::Block sous Windows sachant que le site officiel parle de l'installation sous Visual Studio (et je ne mis connais pas beaucoup dans tout ça).

              Donc est ce que quelqu'un pourrait m'expliquer ou me donner un site assez récent parlant de l'installation de Boost sous Code::Block ??

              Merci de répondre !!

              -
              Edité par Titicplusplus 7 novembre 2018 à 18:11:24

              • Partager sur Facebook
              • Partager sur Twitter
                8 novembre 2018 à 9:01:11

                Première remarque, pourquoi utiliser boost lambda alors que tu peux faire des lambdas en C++11 ?

                Deuxième remarque, tu es au courant que tu as marqué #include <itérateur> et #include <algorithme> ? Tu as cru que la bibliothèque C++ était française ?

                Troisième remarque, les includes se font sous la forme <foo/bar/baz> pas <foo / bar /baz>

                -
                Edité par markand 8 novembre 2018 à 9:01:57

                • Partager sur Facebook
                • Partager sur Twitter

                git is great because Linus did it, mercurial is better because he didn't.

                  8 novembre 2018 à 19:00:46

                  Pour t'expliquer markand.

                  J'ai un copier coller dans Code::Block sans réfléchir alors que c'était de code visual studio pour voir si ça marchait.

                  Mais maintenant merci car ça a l'air de marché.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 novembre 2018 à 9:57:19

                    Le c++ de Visual Studio est le même que celui de C::B (éventuellement plus évolué, ça dépend de la version de mingw gcc utilisée). Quoi qu'il en soit, Visual C++ 2017 supporte filesystem, pas besoin de boost pour ça (pour le reste, boost reste quand même un must have...), et vu qu'il est gratuit (il faut juste s'enregistrer), ce serait dommage de se priver de l'un des meilleurs IDE du marché.

                    -
                    Edité par int21h 9 novembre 2018 à 10:00:51

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug
                      10 novembre 2018 à 14:25:22

                      Salue

                      Il y a toujours un petit problème, explication :

                      Lorsque j'utilise Filesystem avec Boost en créant un objet de type path, il me renvoie un erreur car il ne trouve pas la fonction : path::codecvt()

                      Si quelqu'un à une solution !

                      • Partager sur Facebook
                      • Partager sur Twitter
                        10 novembre 2018 à 20:08:22

                        boost::filesystem n'est pas header only. Elle nécessite de compiler boost et de linker avec les bonnes bibliothèques. Compiler boost n'est pas vraiment un problème, c'est juste très long, et pas forcément très intuitif. Si tu ne veux pas te faire chier avec ça, tu oublies Code::Blocks(ça c'est pas difficile, C::B, c'est vraiment la misère niveau IDE) , tu télécharges VS2017 Community et tu bosses avec.
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug
                          11 novembre 2018 à 14:00:37

                          Le problème de VS2017 s'est qu'il est top lourd(j'ai de base très de peu GO de libre sur mon PC).

                          Il y a un petit temps j'ai voulu le téléchargé et quand j'ai vu la place qu'il prenait, j'ai compris que ça ne pouvait pas le faire.

                          -
                          Edité par Titicplusplus 11 novembre 2018 à 14:03:41

                          • Partager sur Facebook
                          • Partager sur Twitter
                            12 novembre 2018 à 10:40:09

                            Note bien que boost + ses binaires compilés, c'est pas léger non plus. Il y a peut être un moyen de faire de la place sur ton PC au besoin en transférant des trucs sur un disque USB externe que tu brancheras quand tu en auras besoin. Un gros disque USB externe coûte une petite centaine d'euros, c'est peut être une solution à étudier...
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug

                            Création d'un explorateur de fichier en c++

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown