Partage
  • Partager sur Facebook
  • Partager sur Twitter

Langage C et chemin Absolu

Chemin Absolu dans System()

    9 août 2013 à 16:02:06

    Bonjour a tous,

    j'essaye de me déplacer sur mon disque via mon programme C, mais les commande ne fonctionne pas vraiment.

    mon but est de lancer une commande "cd" pour pointer vers mon bureau et pouvoir ensuite créer un dossier, avec des fichiers etc ...

    mais mon code : System("cd C:/Users/%USERPROFILE%/Desktop; ne fonctionne pas.

    Voici un screen :

    lorsque je fait "dir" pour afficher le contenu du dossier, il m'affiche les fichier du répertoire ou se trouve mon programme et non le répertoire que j'ai pointer précédemment c-à-d mon bureau.

    Merci pour votre aide :)

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      9 août 2013 à 16:07:36

      Ça t'embêterait de copier ton code ici, ainsi que le contenu de ta console, au lieu de screener ? On voit que dalle.
      • Partager sur Facebook
      • Partager sur Twitter
        9 août 2013 à 16:16:19

        Salut,

        La reponse semble assez evidente, dumoins ton programme te le dis gentiment, le nom du chemin ne semble pas etre le bon. En effet, si tu t'amuses a taper ta commande dans ton Invite de commande, tu vas recevoir une erreur, alors qu4en tapant %USERPROFILE%/Desktop, ca marche, je te conseille de regarder de ce cote.

        • Partager sur Facebook
        • Partager sur Twitter
          9 août 2013 à 16:36:36

          Salut IntervalBlond et ColasV

          Voici mon code :

          #include <iostream>
          #include<windows.h>

          using namespace std;

          int main()
          {

          int time;
          time = 500;
              cout << "Hey \n\n" << endl;

              system("cd %USERPROFILE%/Desktop");
              system("dir");
              return 0;

          }

          ColasV tu veut dire que ma ligne de code serais : system("cd %USERPROFILE%/Desktop"); ?

          • Partager sur Facebook
          • Partager sur Twitter
            9 août 2013 à 16:41:56

            Sous windows, tente d'utiliser des \\ au lieu des / :)

            Ah, au fait : c'est du C++ ^^

            -
            Edité par SylafrsOne 9 août 2013 à 16:43:17

            • Partager sur Facebook
            • Partager sur Twitter
            perror(const char * str); will save your life !
              9 août 2013 à 16:44:58

              Oui, enfin je pense, j'ai pas trop l'habitude de faire ce genre de truc, mais la commande systeme semble executer une instruction comme si l'on etait en console, or la commande que tu avais mise dans ton script ne fonctionne pas dans mon invite de commande, celle que je propose oui, donc oui la nouvelle ligne de code serait celle-ci.

              • Partager sur Facebook
              • Partager sur Twitter
                9 août 2013 à 16:46:32

                Pensez aux \\ ^^

                ça marchera pas sinon

                -
                Edité par SylafrsOne 9 août 2013 à 16:47:05

                • Partager sur Facebook
                • Partager sur Twitter
                perror(const char * str); will save your life !
                  9 août 2013 à 17:16:48

                  Bonjour SylafrsOne,

                  J'ai entré cette ligne : system("cd %USERPROFILE%\\Desktop");

                  mais rien ne change , le programme m'affiche uniquement les fichier du répertoire ou se trouve mon .exe

                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 août 2013 à 17:17:32

                    Salut,
                    Je ne sais pas comment la fonction system est mise en œuvre sous Windows, mais sous Unixoïde cette suite d'appel ne donnera pas ce que tu souhaites. En effet, cette dernière se charge normalement d'exécuter la commande spécifiée via un interprétateur de commande. Toutefois, cet interprétateur est un autre processus, c'est donc lui qui est impacté par la commande spécifiée et non ton programme initial. Si tu veux modifier le répertoire de travail de ton programme je t'invite à regarder du côté de la fonction _chdir de l'en-tête <direct.h> (la documentation).

                    • Partager sur Facebook
                    • Partager sur Twitter
                      9 août 2013 à 17:22:53

                      Salut Taurre,

                      Je souhaite simplement pointer le programme vers le bureau.

                      comme si je faisait : "cd C:/Users/%USERSPROFILE%/Desktop"  sur le MS-DOS.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        9 août 2013 à 18:25:09

                        rksamy a écrit:

                        Je souhaite simplement pointer le programme vers le bureau.

                        Oui, j'avais compris. C'est ce que réalise la fonction que je t'ai renseignée (mise à part qu'elle ne gère pas les variables d'environnement).

                        -
                        Edité par Taurre 9 août 2013 à 18:26:33

                        • Partager sur Facebook
                        • Partager sur Twitter
                          17 janvier 2019 à 23:31:16

                          Bonjour,

                          je me permets de sortir d'outre tombe ce sujet car j'ai le même soucis. Je cherche à faire la même chose mais sur ubuntu.

                          J'ai essayer de faire la commande suivante dans mon programme C:

                          system("cd /home/xxx")

                          mais lorsque que je fais un system("dir"), le programme m'affiche les fichiers présents dans le dossier du code.

                          Quelqu'un pourrait m'aider :) ?

                          • Partager sur Facebook
                          • Partager sur Twitter
                            18 janvier 2019 à 8:57:09

                            Même problème, même solution.

                            Le même problème : system lance un autre processus (un shell), qui a son propre home directory, qui change sous l'effet de "cd", ce qui nous fait une belle jambe.

                            Même solution : utiliser la  fonction systeme  chdir, qui modifie le répertoire courant du processus qui l'exécute.

                            Voir la page de manuel pour les détails et des exemples.

                            -
                            Edité par michelbillaud 18 janvier 2019 à 8:58:27

                            • Partager sur Facebook
                            • Partager sur Twitter
                              12 février 2019 à 8:02:33

                              Bonjour michelbillaud,

                              Solution à mon problème trouvé. Merci à toi 

                              • Partager sur Facebook
                              • Partager sur Twitter

                              Langage C et chemin Absolu

                              × 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