Commande pour supprimer un fichier en C++

[Résolu/Fermé]
Signaler
Messages postés
11
Date d'inscription
dimanche 21 juin 2009
Statut
Membre
Dernière intervention
4 août 2009
-
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
-
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

16 réponses

Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 786
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 786
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
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 786
As-tu inclus direct.h comme dit plus haut ?
Messages postés
11
Date d'inscription
dimanche 21 juin 2009
Statut
Membre
Dernière intervention
4 août 2009
10
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
Messages postés
11
Date d'inscription
dimanche 21 juin 2009
Statut
Membre
Dernière intervention
4 août 2009
10
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 é_è
Messages postés
11
Date d'inscription
dimanche 21 juin 2009
Statut
Membre
Dernière intervention
4 août 2009
10
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???
Messages postés
11
Date d'inscription
dimanche 21 juin 2009
Statut
Membre
Dernière intervention
4 août 2009
10
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)
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 786
Teste la valeur de retour et dis-nous si ça vaut ENOTEMPTY, ENOENT ou EACCES.
Cela indiquera d'où vient l'erreur.
Messages postés
11
Date d'inscription
dimanche 21 juin 2009
Statut
Membre
Dernière intervention
4 août 2009
10
la valeur de retour??? et comment on fait??? =S
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 786
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
Messages postés
11
Date d'inscription
dimanche 21 juin 2009
Statut
Membre
Dernière intervention
4 août 2009
10
lors du test la console renvoie la valeur EACCES
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 786
Essaie de supprimer un autre répertoire pour tester.
Messages postés
11
Date d'inscription
dimanche 21 juin 2009
Statut
Membre
Dernière intervention
4 août 2009
10
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
Messages postés
11
Date d'inscription
dimanche 21 juin 2009
Statut
Membre
Dernière intervention
4 août 2009
10
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?
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 786
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
Du grand n'importe quoi (developpez, en même temps, normal...)
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 786
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 ;-).