Copie de repertoires

isra -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je suis en train d'essayer de coder un petit programme qui, à l'aide des fonctions opendir,readdir et closedir, copie un repertoire avec seulement des fichiers dedans. Le probleme ici est que la fonction copie_fichier fonctionne pour un fichier (sans compter le repertoire), mais quand je l'apelle dans la fonction copie_repertoire, cela ne fonctionne pas. Pourriez vous m'éclairer svp?
Voici mon code:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>

int copier_fichier(char *iname, char *oname){

    int fdsource = open (iname, O_RDONLY);
    int fdcible = open (oname, O_WRONLY | O_CREAT | O_EXCL);

    while (1){
        char buffer[4096]; 
        int octets_lus = read(fdsource, buffer, sizeof(buffer));
 struct stat istat;
 fstat(fdsource,&istat); //recuperer les permissions de fdsource
 fchmod(fdcible,istat.st_mode); //Les attribuer a fdcible
        if (octets_lus==0){
            break;
        }   else {
            write(fdcible, buffer, sizeof(buffer)); }
    }
    close(fdsource);
    close(fdcible);
    return 0;
}

int copier_repertoire(char *iname, char *oname){

    DIR *repsource;
    DIR *repcible;
    struct dirent *dp;
    repsource = opendir(iname);
    repcible =  opendir(oname);

    while ((dp=readdir(repsource)) != NULL) {
    copier_fichier("/home/isra/Bureau/TEST/*","/home/isra/Documents/TEST/*");
    closedir(repsource);
    closedir(repcible);
   }
}


int main(int argc, char *argv[]){
copier_repertoire("/home/isra/Bureau/TEST/","/home/isra/Documents/TEST/");
}


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

1 réponse

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, pourquoi appelles-tu readdir, et que fais-tu avec le résultat?
0