Deplacer un fichier dans un repertoire en langage c sur linux [Résolu/Fermé]

Messages postés
8
Date d'inscription
samedi 30 novembre 2013
Statut
Membre
Dernière intervention
19 mars 2016
-
Bonjour à tous, s'il vous plait j'essaye depuis 2 jours à deplacer un fichier dans un dossier avec la fonction rename en sur ubuntu sans succès. voila ma fonction:


void deplace(char* nom_fichier, char* nom_dossier)
{
   FILE *fichier = NULL;
   DIR  *repertoire = NULL;
   fichier = fopen(nom_fichier,"r");
   if((fichier == NULL)&&(errno == ENOENT))
   {
    printf("le fichier %s n\'existe pas\n",nom_fichier);
    
   }
   else
   {
 repertoire = opendir(nom_dossier);
 if((repertoire == NULL)&&(errno == ENOENT))
 {
    printf("Le repertoire %s n\'existe pas\n",nom_dossier);
 }
 else
 {
    fclose(fichier);
    closedir(repertoire);

    //Deplacement du fichier dans le repertoire
    if(rename(nom_fichier, nom_dossier) == 0)
  printf("fichier %s deplace avec succe\n",nom_fichier);
           else
  printf("Echec de deplacement\n");
    
 }
   }
}


Sa m'affiche a chaque fois echec de deplacement.
Merci de m'aider
Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1615
1
Merci
Ben tu renommes ton fichier en répertoire...
Il faut indiquer le nom du fichier source et la destination : rename(source, destination).
Donc grosso modo, il faut que tu mettes en 2nd argument : nom_dossier/nom_fichier.

Tu peux te créer une variable suffisamment grande, copier nom_dossier dedans avec strcpy() puis concaténer avec nom_fichier (strcat()).
Pense bien à vérifier qu'il y a bien le '/'.

Cdlt,

Dire « Merci » 1

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

CCM 71332 internautes nous ont dit merci ce mois-ci

usher105
Messages postés
8
Date d'inscription
samedi 30 novembre 2013
Statut
Membre
Dernière intervention
19 mars 2016
-
merci fiddy probleme resolu