Rechercher : dans
Par :

[C++] Parcours de fichiers dans un répertoire

Dernière réponse le 22 mai 2005 à 21:33:14 Fom, le 22 mai 2005 à 19:20:24 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [C++] Parcours de fichiers dans un répertoire » dans :
[MS-Dos] Lister le contenu d'un répertoire dans un fichier VoirIl peut s'avérer pratique d'effectuer le listage d'un ou plusieurs répertoires dans un fichier, afin de tenir par exemple un catalogue de fichiers. Sous MS-Dos (ou sous Windows en ouvrant une fenêtre d'invite de commande MS-Dos) il est possible...
[PHP] Lister le contenu d'un répertoire VoirGrâce à PHP, il est possible d'afficher le contenu d'un répertoire et de ses sous-répertoires. Voici ci-dessous une fonction permettant de parcourir récursivement les répertoires et sous-répertoires et d'en afficher les fichiers : function...
[Windows] Obtenir la liste des fichiers d'un dossier VoirLister le contenu d'un dossier Voici une astuce simple qui permet de lister le nom des fichiers contenus dans un répertoire. Vous pourrez obtenir en un clic les titres de vos chansons, de vos photos, etc. dans un fichier...

1

 blurk, le 22 mai 2005 à 21:33:14
  • +1

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

#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);
}

¤

Répondre à blurk
Collection CommentÇaMarche.net