Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void copiere(char* sursa,char* dest)
- {
- struct stat st; //stats fisiere/foldere
- DIR *s=NULL; //directorul sursa
- struct dirent *c = NULL; //continutul unui folder
- char cs[256],cd[256]; //cale sursa si cale destinatie
- s=opendir(sursa); //deschidem sursa
- if(s!=NULL) //daca sursa exista
- {
- stat(sursa,&st); //aflam drepturile de acces sursa sursei
- mkdir(dest,st.st_mode); //cream folderul destinatie cu aceleasi drepturi de acces
- while(c=readdir(s)) //citim continutul folderului sursa
- {
- if(strcmp(c->d_name,".")!=0&&strcmp(c->d_name,"..")!=0) //evitam caile .. si .
- {
- strcpy(cs,sursa); //cream calea sursa
- strcpy(cd,dest); //cream calea destinatie
- if(cs[strlen(cs)-1]!='/') //adaugam la cale / in cazul in care nu exista
- strcat(cs,"/");
- if(cd[strlen(cd)-1]!='/')
- strcat(cd,"/");
- strcat(cs,c->d_name); //adaugam numele fisierulului/folderului curent
- strcat(cd,c->d_name);
- stat(cs,&st); //verificam daca sursa curenta este folder sau fisier
- if(S_ISDIR(st.st_mode))
- copiere(cs,cd); //in cazul unui folder reapelam functia curenta recursiv
- if(S_ISREG(st.st_mode))
- copiere_fisier(cs,cd); //in cazul unui fisier, copiem fisierul
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement