Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment supprimer un dossier

    22 octobre 2006 à 18:53:02

    Bonjours à tous...

    Comment fais ton pour supprimer un dossier,car j'aimerais bien un programme qui permet de gerer ses fichiers...


    Je sais comment supprimer un fichier mais pas un dossier alors j'aimerais savoir comment on fait.

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      22 octobre 2006 à 19:08:54

      regarde si dirent n'a pas une fonction du style "rmdir"
      • Partager sur Facebook
      • Partager sur Twitter
        23 octobre 2006 à 13:07:13

        rmdir("mondossier");


        Le dossier doit être vide sinon ça ne marchera pas.
        Pour supprimer un fichier:

        remove("monfichier");


        ;)
        • Partager sur Facebook
        • Partager sur Twitter
          23 octobre 2006 à 16:58:19

          ya pas quand le dossier a des fichier dedans
          • Partager sur Facebook
          • Partager sur Twitter
            23 octobre 2006 à 17:35:12

            Non. Il faut la faire soit même.

            Avec dirent.h tu peux facilement y arriver, il suffit juste de te documenter sur les fonctions de cet header.
            • Partager sur Facebook
            • Partager sur Twitter
              23 octobre 2006 à 18:11:18

              Aller je suis de bonne humeur aujourd'hui ^^


              int supprimerDossier(const char* dossier)
              {
                  DIR* rep;
                  struct dirent* file;

                  rep = opendir(dossier);

                  if (!rep)
                      return 1;

                  while (file = readdir(rep))
                  {
                      if (strcmp(file->d_name, ".") && strcmp(file->d_name, ".."))
                      {
                          char filename[255];
                          sprintf(filename, "%s/%s", dossier, file->d_name);

                          if (remove(filename) == -1)
                              return 1;
                      }
                  }

                  if (rmdir(dossier) != 0)
                      return 1;

                  return 0;
              }
              • Partager sur Facebook
              • Partager sur Twitter
                23 octobre 2006 à 18:15:51

                Salut

                Citation : Amadeus


                rmdir("mondossier");




                Le dossier doit être vide sinon ça ne marchera pas.
                Pour supprimer un fichier:


                remove("monfichier");





                pour cela est ce que la librairie dirent.h est necessaire
                • Partager sur Facebook
                • Partager sur Twitter
                  23 octobre 2006 à 18:21:43

                  j'ai mis ton code Amadeus mais quand je le compile il me dit qu'il y a une erreur sur "DIR* rep;"

                  donc comment arranger sa stp
                  • Partager sur Facebook
                  • Partager sur Twitter
                    23 octobre 2006 à 18:29:38

                    tu as mis:
                    #include <dirent.h>
                    • Partager sur Facebook
                    • Partager sur Twitter
                      23 octobre 2006 à 18:55:34

                      J'ai fait un tuto sur dirent.h qui est en attente de validation (ou de non validation :p )
                      Je savais pas que cette fonction rmdir existait dans dirent (en bash en effet elle existe), je rajouterais peut-être une petite section.
                      Merci donc de la petite info.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        23 octobre 2006 à 18:59:29

                        a nn dsl j'avait oublier de le mettre mais maintenant c'est system("PAUSE"); qui bug
                        • Partager sur Facebook
                        • Partager sur Twitter
                          23 octobre 2006 à 19:07:53

                          Apprend le C tout cours avant de te lancer dans ce genre de truc. Apparement, tu as une erreur de code.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            23 octobre 2006 à 19:09:47

                            Evites system("PAUSE");
                            Lui préferer :

                            printf ("Press enter to quit ...\n");
                            getchar ();
                            /*ou c = getchar(); pour la rigueur en ayant bien sûr déclarer un int c avant !*/
                            • Partager sur Facebook
                            • Partager sur Twitter
                              23 octobre 2006 à 19:15:50

                              va si ya rien qui marche
                              • Partager sur Facebook
                              • Partager sur Twitter
                                23 octobre 2006 à 19:16:18

                                Quelle erreurs du compilo?
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  23 octobre 2006 à 19:20:57

                                  bon voila mon code

                                  Citation : Code C

                                  #include <stdio.h>
                                  #include <stdlib.h>
                                  #include <dirent.h>

                                  int supprimerDossier(const char* dossier)
                                  {
                                  DIR* rep;
                                  struct dirent* file;

                                  rep = opendir("C:\\Documents and Settings\\SIMON Pascal\\Mes documents\\essai");

                                  if (!rep)
                                  return 1;

                                  while (file = readdir(rep))
                                  {
                                  if (strcmp(file->d_name, ".") && strcmp(file->d_name, ".."))
                                  {
                                  char filename[255];
                                  sprintf(filename, "%s%s", dossier, file->d_name);

                                  if (remove("C:\\Documents and Settings\\SIMON Pascal\\Mes documents\\essai") == -1)
                                  return 1;
                                  }
                                  }

                                  if (rmdir("C:\\Documents and Settings\\SIMON Pascal\\Mes documents\\essai") != 0)
                                  return 1;

                                  return 0;
                                  }

                                  system("PAUSE");

                                  return 0;

                                  }

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    23 octobre 2006 à 19:26:19

                                    Citation : b-symon

                                    bon voila mon code

                                    #include <stdio.h>
                                    #include <stdlib.h>
                                    #include <dirent.h>

                                    int supprimerDossier(const char* dossier)
                                    {
                                        DIR* rep;
                                        struct dirent* file;

                                        rep = opendir("C:\\Documents and Settings\\SIMON Pascal\\Mes documents\\essai");

                                        if (!rep)
                                            return 1;

                                        while (file = readdir(rep))
                                        {
                                            if (strcmp(file->d_name, ".") && strcmp(file->d_name, ".."))
                                            {
                                                char filename[255];
                                                sprintf(filename, "%s%s", dossier, file->d_name);

                                                if (remove("C:\\Documents and Settings\\SIMON Pascal\\Mes documents\\essai") == -1)
                                                    return 1;
                                            }
                                        }

                                        if (rmdir("C:\\Documents and Settings\\SIMON Pascal\\Mes documents\\essai") != 0)
                                            return 1;

                                        return 0;
                                    }

                                    system("PAUSE");

                                    return 0;

                                    }
                                    (je rajoute les balises de code)

                                    Donc mon conseil :
                                    Vas lire les cours de C au moins jusqu'aux fonctions :-°
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      23 octobre 2006 à 19:30:53

                                      non mais franchement réponder moi ses juste pour savoir je trouve pas mon erreur

                                      a chaque que je la corrige il m'en met une autre
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        23 octobre 2006 à 19:36:03

                                        Tes erreurs ?
                                        - } en trop à la fin
                                        - system("PAUSE") (non portable) en-dehors d'une fonction
                                        - return en dehors d'une fonction
                                        - pas de fonction main()
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          23 octobre 2006 à 19:42:27

                                          T'as lu les cours j'usqu'à où ???
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            23 octobre 2006 à 20:33:34

                                            Oups rien dit ...


                                            EDIT : Par contre j'ai vérifé pour rmdir => man rmdir
                                            Aucune fonction rmdir dans la bibliothèque dirent.
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              24 octobre 2006 à 13:18:29

                                              Citation : Pierre89

                                              Par contre j'ai vérifé pour rmdir => man rmdir
                                              Aucune fonction rmdir dans la bibliothèque dirent.



                                              Si si elle y est ^^

                                              http://www.devx.com/cplus/10MinuteSolution/26748/1954?pf=true

                                              Citation : b-symon

                                              bon voila mon code

                                              #include <stdlib.h>
                                              #include <dirent.h>

                                              int supprimerDossier(const char* dossier)
                                              {
                                                  DIR* rep;
                                                  struct dirent* file;

                                                  rep = opendir("C:\\Documents and Settings\\SIMON Pascal\\Mes documents\\essai");

                                                  if (!rep)
                                                      return 1;

                                                  while (file = readdir(rep))
                                                  {
                                                      if (strcmp(file->d_name, ".") && strcmp(file->d_name, ".."))
                                                      {
                                                          char filename[255];
                                                          sprintf(filename, "%s%s", dossier, file->d_name);

                                                          if (remove("C:\\Documents and Settings\\SIMON Pascal\\Mes documents\\essai") == -1)
                                                              return 1;
                                                      }
                                                  }

                                                  if (rmdir("C:\\Documents and Settings\\SIMON Pascal\\Mes documents\\essai") != 0)
                                                      return 1;

                                                  return 0;
                                              }

                                              system("PAUSE");

                                              return 0;

                                              }



                                              Code n'est pas valide, essaye plutôt de compiler ça:

                                              #include <stdlib.h>
                                              #include <dirent.h>

                                              int supprimerDossier(const char* dossier)
                                              {
                                                  DIR* rep;
                                                  struct dirent* file;

                                                  rep = opendir(dossier);

                                                  if (!rep)
                                                      return 1;

                                                  while (file = readdir(rep))
                                                  {
                                                      if (strcmp(file->d_name, ".") && strcmp(file->d_name, ".."))
                                                      {
                                                          char filename[255];
                                                          sprintf(filename, "%s/%s", dossier, file->d_name);

                                                          if (remove(filename) == -1)
                                                              return 1;
                                                      }
                                                  }

                                                  if (rmdir(dossier) != 0)
                                                      return 1;

                                                  return 0;
                                              }

                                              int main()
                                              {
                                                  supprimerDossier("C:\\Documents and Settings\\SIMON Pascal\\Mes documents\\essai");
                                                  system("PAUSE");
                                                  return 0;
                                              }
                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              Comment supprimer un dossier

                                              × 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