[C++] Parcours de fichiers dans un répertoire
Fom
-
blurk Messages postés 486 Date d'inscription Statut Membre Dernière intervention -
blurk Messages postés 486 Date d'inscription Statut Membre Dernière intervention -
Bonjour à toutes et à tous,
Voila mon petit problème : j'aimerai, pour un path donné (c'est un répertoire), parcourir le contenu de ce répertoire et pouvoir sélectionner tous les sous-répertoires contenus dans le répertoire de base. Mon but étant d'explorer l'arborescence des répertoires à partir du path d'origine (parcours en préordre...).
Je code en C++ et j'ai essayé avec la méthode FindFirst, GetCurrentDir et encore d'autre et je n'arrive à rien. Quelqu'un aurait-il une petite idée pour moi?
Un grand merci d'avance!
salutations.
Fom
Voila mon petit problème : j'aimerai, pour un path donné (c'est un répertoire), parcourir le contenu de ce répertoire et pouvoir sélectionner tous les sous-répertoires contenus dans le répertoire de base. Mon but étant d'explorer l'arborescence des répertoires à partir du path d'origine (parcours en préordre...).
Je code en C++ et j'ai essayé avec la méthode FindFirst, GetCurrentDir et encore d'autre et je n'arrive à rien. Quelqu'un aurait-il une petite idée pour moi?
Un grand merci d'avance!
salutations.
Fom
A voir également:
- [C++] Parcours de fichiers dans un répertoire
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Impossible de supprimer un fichier - Guide
- Explorateur de fichiers - Guide
1 réponse
salut,
voilà une fonction qui copie un repertoire et toute son arborescence
fichiers compris vers un autre répertoire,
comme la commande msdos xcopy, mais c'est une vieille histoire
avec quelques retouches ce qui suit devrait t'être utile
cordialement
voilà une fonction qui copie un repertoire et toute son arborescence
fichiers compris vers un autre répertoire,
comme la commande msdos xcopy, mais c'est une vieille histoire
avec quelques retouches ce qui suit devrait t'être utile
cordialement
#include <stdio.h> #include <dir.h> void copydir(char *repsource, char *repcible); void copyfile(char *Fsource,char *Fcible); void copydir(char *repsource, char *repcible) { char nomfic[256],search[256]; char fichiersource[256],fichiercible[256]; struct ffblk ffblk; strcpy(search,repsource); strcat(search,"\\*"); int done; int nbfic=0; while (true) { if(!nbfic) {done = findfirst(search,&ffblk,FA_RDONLY + FA_DIREC);} else {done = findnext(&ffblk);} if (done) break; strcpy(nomfic,ffblk.ff_name); strcpy (fichiersource,repsource); strcat (fichiersource,"\\"); strcat (fichiersource,nomfic); strcpy (fichiercible,repcible); strcat (fichiercible,"\\"); strcat (fichiercible,nomfic); if(ffblk.ff_attrib & FA_DIREC) { int i; for(i=strlen(fichiersource);i>0 && fichiersource[i]!='\\';--i); if(fichiersource[i+1]!='.') // ne pas copier les dosiers parents { mkdir(fichiercible); copydir(fichiersource,fichiercible); // recursif pour sous repertoires } } else { copyfile(fichiersource,fichiercible); } nbfic++; } } // copier un fichier et choisir de le renomer void copyfile(char *Fsource,char *Fcible) { FILE *source, *cible; source =fopen(Fsource,"rb"); cible =fopen(Fcible,"wb"); while(true) { register c=fgetc(source); if(feof(source))break; fputc(c,cible); } fclose(cible); fclose(source); }