Commande pour supprimer un fichier en C++

Résolu
Bonjour,

je ne connait presque rien en programmation et je voudrais savoir quelle commande permet en c++ de supprimer un dossier de fichier (ex: supprimer "C:\Documents and Settings\jean\Mes documents")

merci d'avance pour votre aide
Configuration: Windows XP Internet Explorer 8.0

16 réponses

  1. Contributeur
    Ne pas s'y connaître n'empêche pas de regarder sur google maintenant que tu as le mot-clé "_rmdir" ;-))). https://www.microsoft.com/en-us/download/details.aspx?id=55984
    _rmdir("C:\\Documents and Settings\\jean\\Mes documents");
    Ton répertoire doit être vide.
    3
    1. Contributeur
      Pour supprimer un fichier : int remove(const char *pathname);
      Pour supprimer un répertoire, rien de standard (rmdir sous un système Posix (unistd.h), _rmdir sous Windows (direct.h))
      Cdlt
      1
      1. Contributeur
        As-tu inclus direct.h comme dit plus haut ?
        1
        1. euh...comme je l'ai dit je m'y connait pas beaucoup
          ca donnerait quoi si je veux supprimer le répertoire "C:\Documents and Settings\jean\Mes documents" ?

          merci quand même pr la réponse
          0
          1. quand je dis que je n'y connais rien^^:
            avec la commande: _rmdir("C:\\Documents and Settings\\jean\\Mes documents");
            le compilateur met: `_rmdir' undeclared (first use this function)

            et quand j'essaye avec : int _rmdir( const char "C:\\Documents and Settings\\jean\\Mes documents" );
            le compilateur met: expected `,' or `...' before string constant

            j'y arriverais jamais é_è
            0
            1. effectivement j'avais oublié...xP
              par contre (et bien vérifier que ce chemin était correct!) aprés une compilation sans erreur, quand je lance le programme la console affiche que le dossier cible est introuvable???
              0
              1. j'ai rien dit en fait il ne dit pas que le fichier est introuvable...il ne fait rien du tout (même pas de bug mais il ne supprime pas non plus le dossier)
                0
                1. Contributeur
                  Teste la valeur de retour et dis-nous si ça vaut ENOTEMPTY, ENOENT ou EACCES.
                  Cela indiquera d'où vient l'erreur.
                  0
                  1. la valeur de retour??? et comment on fait??? =S
                    0
                    1. Contributeur
                      Teste :
                      #include <iostream>
                      #include <direct.h>
                      
                      int main() {
                        if(_rmdir( "C:\\Documents and Settings\\jean\\Mes documents")==-1) 
                            switch(errno) {
                                case ENOTEMPTY:
                                    std::cout << "ENOTEMPTY" << std::endl;
                                    break;
                                case ENOENT:
                                    std::cout << "ENOENT" << std::endl;
                                    break;
                                case EACCES:
                                    std::cout << "EACCES" << std::endl;
                                    break;
                                 default:
                                    std::cout << "pas normal" << std::endl;
                                    break;
                             }
                          } 
                          else
                           std::cout << "fichier supprime" << std::endl;
                      
                      }
                       

                      Et par ailleurs, si tu souhaites supprimer un répertoire non vide : https://cpp.developpez.com/faq/vc

                      Cdlt
                      0
                      1. lors du test la console renvoie la valeur EACCES
                        0
                        1. Contributeur
                          Essaie de supprimer un autre répertoire pour tester.
                          0
                          1. euh j'ai essayé avec un autre répertoire...maintenant la valeur renvoyée est ENOTEMPTY

                            décidément je vais faire toutes les erreur possibles =S
                            0
                            1. En fait je me suis renseigné sur RMDIR, et il semblerais qu'on ne peut supprimer un répertoire avec cette commande que si il est vide. Il faudrait donc que je supprime le contenu du dossier avant de le supprimer.

                              N'y a t il pas une commande qui permet directement de supprimer un dossier avec son contenu?
                              0
                              1. Contributeur
                                et il semblerais qu'on ne peut supprimer un répertoire avec cette commande que si il est vide
                                Faut lire ce que je mets hein ;-))) Je te l'ai dit à deux reprises
                                Post 3 : Ton répertoire doit être vide.
                                Post 10 : Et par ailleurs, si tu souhaites supprimer un répertoire non vide : https://cpp.developpez.com/faq/vc

                                Cdlt
                                0
                                1. Du grand n'importe quoi (developpez, en même temps, normal...)
                                  0
                                  1. Contributeur
                                    Avant de dénigrer on prend soin de lire. Tu te rendras compte alors que la fonction de suppression est correcte ;-))).
                                    Et puis les critiques sans apports personnels, c'est inutile ;-).
                                    0