Commande pour supprimer un fichier en C++

Résolu/Fermé
benito9253 Messages postés 11 Date d'inscription dimanche 21 juin 2009 Statut Membre Dernière intervention 4 août 2009 - 21 juin 2009 à 17:39
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 25 juin 2009 à 23:38
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
A voir également:

16 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
21 juin 2009 à 18:40
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
21 juin 2009 à 17:59
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
21 juin 2009 à 20:38
As-tu inclus direct.h comme dit plus haut ?
1
benito9253 Messages postés 11 Date d'inscription dimanche 21 juin 2009 Statut Membre Dernière intervention 4 août 2009 10
21 juin 2009 à 18:18
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
benito9253 Messages postés 11 Date d'inscription dimanche 21 juin 2009 Statut Membre Dernière intervention 4 août 2009 10
21 juin 2009 à 19:15
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
benito9253 Messages postés 11 Date d'inscription dimanche 21 juin 2009 Statut Membre Dernière intervention 4 août 2009 10
22 juin 2009 à 20:17
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
benito9253 Messages postés 11 Date d'inscription dimanche 21 juin 2009 Statut Membre Dernière intervention 4 août 2009 10
22 juin 2009 à 20:50
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
22 juin 2009 à 21:08
Teste la valeur de retour et dis-nous si ça vaut ENOTEMPTY, ENOENT ou EACCES.
Cela indiquera d'où vient l'erreur.
0
benito9253 Messages postés 11 Date d'inscription dimanche 21 juin 2009 Statut Membre Dernière intervention 4 août 2009 10
22 juin 2009 à 21:30
la valeur de retour??? et comment on fait??? =S
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
22 juin 2009 à 21:59
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
benito9253 Messages postés 11 Date d'inscription dimanche 21 juin 2009 Statut Membre Dernière intervention 4 août 2009 10
23 juin 2009 à 10:55
lors du test la console renvoie la valeur EACCES
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
23 juin 2009 à 20:37
Essaie de supprimer un autre répertoire pour tester.
0
benito9253 Messages postés 11 Date d'inscription dimanche 21 juin 2009 Statut Membre Dernière intervention 4 août 2009 10
24 juin 2009 à 13:28
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
benito9253 Messages postés 11 Date d'inscription dimanche 21 juin 2009 Statut Membre Dernière intervention 4 août 2009 10
24 juin 2009 à 13:45
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
24 juin 2009 à 19:43
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
Du grand n'importe quoi (developpez, en même temps, normal...)
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
25 juin 2009 à 23:38
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