Deplacer un fichier dans un repertoire en langage c sur linux

Résolu
usher105 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
usher105 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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,
4
usher105 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
merci fiddy probleme resolu
0