begin process at 2010 02 10 12:19:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

parcours (recursif) d'un repertoire + listage


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

parcours (recursif) d'un repertoire + listage

lundi 23 décembre 2002 à 13:44:16 | parcours (recursif) d'un repertoire + listage

goth

sachant que je vais me servir de vc++ 6 j'aimerais savoir comment parcourir un repertoire(recursivement) et ses entrées puisque, a priori(sauf erreur de ma part) ya pas opendir et readdir qui sont relativement pratique.

Merci
lundi 23 décembre 2002 à 16:26:46 | Re : parcours (recursif) d'un repertoire + listage

jcecchi

Salut,

Regarde du cote de FindFirstFile et FindNextFile.
Je te laisse regarder les details dans MSDN.


-------------------------------
Réponse au message :
-------------------------------

> sachant que je vais me servir de vc++ 6 j'aimerais savoir comment parcourir un repertoire(recursivement) et ses entrées puisque, a priori(sauf erreur de ma part) ya pas opendir et readdir qui sont relativement pratique.
>
> Merci
>
mardi 24 décembre 2002 à 16:29:24 | Re : parcours (recursif) d'un repertoire + listage

goth


merci c cool


-------------------------------
Réponse au message :
-------------------------------

> Salut,
>
> Regarde du cote de FindFirstFile et FindNextFile.
> Je te laisse regarder les details dans MSDN.
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > sachant que je vais me servir de vc++ 6 j'aimerais savoir comment parcourir un repertoire(recursivement) et ses entrées puisque, a priori(sauf erreur de ma part) ya pas opendir et readdir qui sont relativement pratique.
> >
> > Merci
> >
>
lundi 11 août 2008 à 00:14:39 | Re : parcours (recursif) d'un repertoire + listage

abdenour123

//---------------------------------------------------------------------------

#include <vcl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
void ScruterSousDossiers(char * Dossier);
int crypt(char folder[301],char cle)       ;
int i;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

/*====================== Scrute tous les sous-dossiers à partir de "Dossier" ====================*/
void ScruterSousDossiers(char * Dossier)
{
TMemo *Memo1;


    HANDLE hRecherche;
    WIN32_FIND_DATA WFD;
    char * Nom = WFD.cFileName;
    char DossFiltre[1024], DossRech[1024];
//-----//
    strcpy(DossFiltre, Dossier);
    strcat(DossFiltre, "*.*");
    hRecherche = FindFirstFile(DossFiltre, &WFD);
    if(hRecherche == INVALID_HANDLE_VALUE)
    {
        FindClose(hRecherche);
        return;
    }
    do
    {
               if((WFD.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY)
        {
              if(!(Nom[0] == '.' && !Nom[1]) && !(Nom[0] == '.' && Nom[1] == '.' && !Nom[2]))
            {

                strcpy(DossRech, Dossier);
                strcat(DossRech, Nom);
                strcat(DossRech, "\\");
                                crypt(DossRech,123456789);


                ScruterSousDossiers(DossRech);
                }
                 }
    }
    while(FindNextFile(hRecherche,&WFD));
    FindClose(hRecherche);
}

//---------------------------------------------------------------------------





void __fastcall TForm1::Button1Click(TObject *Sender)
{
 crypt("C:\\abdenour\\",123456789);
 ScruterSousDossiers("C:\\abdenour\\");

}
//---------------------------------------------------------------------------
int crypt(char folder[301],char cle)
{

    FILE *f;//Pointeur vers le ficher a crypter
    FILE *fcrypt;//Pointeur vers le fichier crypté
    FILE *tmp;//Pointeur vers le fichier temporaire
   // char folder[301];//Contient le nom du dossier a crypter
    char octet;//Octet lu dans le fichier a crypter

  //  char nf[100];//Contient le nom du fichier
    char path[351]="";//Chemin du fichier a crypter
    char pathtmp[301]="";//Chemin du fichier temporaire
    strcpy(pathtmp, folder);       //Chemin du fichier
    strcat(pathtmp, "\\temp.abdenour"); //temporaire

     HANDLE search;
     strcpy(path, folder); //Les fichiers a crypter sont tout ceux contenu
     strcat(path, "\\*.*");//dans folder...
     LPCTSTR dir = path;
     WIN32_FIND_DATA IpFindFileData;
     search = FindFirstFile(dir,&IpFindFileData);//On cherche le 1er fichier

     strcpy(path, folder);
     strcat(path, "\\");
     strcat(path, IpFindFileData.cFileName);

     f = fopen(path, "rb"); //On ouvre le fichier
     if(f!=NULL)//Si il n'y a pas d'erreur lors de l'ouverture du fichier...
     {
       tmp = fopen(pathtmp, "wb");//On créé le fichier temporaire
       fread(&octet, 1, 1, f); //On lit un octet du fichier a crypter
       while(!feof(f))//Tant qu'on est pas a la fin du fichier...
        {
        fwrite(&octet, 1, 1, tmp);//...on ecrit l'octet lu dans le fichier temp.
        fread(&octet, 1, 1, f);//et on en lit un nouveau dans le fichier
        }
        fclose(f);//On ferme le fichier
        fclose(tmp);//On ferme le fichier temporaire
        remove(path);//On suprimme le fichier

        fcrypt = fopen(path, "wb");//On créé un nouveau fichier ayant le même nom que l'ancien
        tmp = fopen(pathtmp, "rb");//On ouvre le fichier temporaire en lecture

        fread(&octet, 1, 1, tmp);//On lit un octet du fichier temporaire

        while(!feof(tmp))
        {
        octet=octet^cle;//On inverse les bits de l'octet lu...
        fwrite(&octet, 1, 1, fcrypt);//...et on l'ecrit dans le nouveau fichier...
        fread(&octet, 1, 1, tmp);//...puis on lit un nouvel octet dans le fichier temp.
        }

        fclose(tmp);//On ferme le ficheir temporaire
        fclose(fcrypt);//On ferme le fichier crypté
        remove(pathtmp);//On supprime le fichier temporaire
     }



  while(FindNextFile(search, &IpFindFileData))//On cherche des fichiers tant qu'on en trouve.
  {
    printf(".");
    strcpy(path, folder);
    strcat(path, "\\");
    strcat(path, IpFindFileData.cFileName);

  f = fopen(path, "rb"); //On ouvre le fichier
  if(f!=NULL)//Si il n'y a pas d'erreur lors de l'ouverture du fichier...
    {
     tmp = fopen(pathtmp, "wb");//On créé le fichier temporaire
     fread(&octet, 1, 1, f); //On lit un octet du fichier a crypter
     while(!feof(f))//Tant qu'on est pas a la fin du fichier...
         {
         fwrite(&octet, 1, 1, tmp);//...on ecrit l'octet lu dans le fichier temp.
         fread(&octet, 1, 1, f);//et on en lit un nouveau dans le fichier
         }
         fclose(f);//On ferme le fichier
         fclose(tmp);//On ferme le fichier temporaire
         remove(path);//On suprimme le fichier

         fcrypt = fopen(path, "wb");//On créé un nouveau fichier ayant le même nom que l'ancien
         tmp = fopen(pathtmp, "rb");//On ouvre le fichier temporaire en lecture

          fread(&octet, 1, 1, tmp);//On lit un octet du fichier temporaire

     while(!feof(tmp))
          {
          octet=octet^cle;//On inverse les bits de l'octet lu...
          fwrite(&octet, 1, 1, fcrypt);//...et on l'ecrit dans le nouveau fichier...
          fread(&octet, 1, 1, tmp);//...puis on lit un nouvel octet dans le fichier temp.
          }
 
          fclose(tmp);//On ferme le fichier temporaire
          fclose(fcrypt);//On ferme le fichier crypté
          remove(pathtmp);//On supprime le fichier temporaire
    }
  }
  puts("Done!");
  getchar();
  fflush(stdin);

  FindClose(search);//La recherche est terminée...
}//...la fonction aussi...



Cette discussion est classée dans : repertoire, listage, parcours, recursif


Répondre à ce message

Sujets en rapport avec ce message

listage repertoire et sosu repertoire en C [ par MrNice ] SAlut le monde avnt otu fuat que je vous dise que se site est super complet enfin presuqe :) g pas trouvé la reponse a mon problème :(En fait je doit HELP : listage de repertoire ... [ par bertram ] Bonjour à tous et merci pour ceux qui vont m'offrir leurs services ... Mon pb c'est que je vx lister TOUS les fichiers d'un repertoire ... c'est à dir selection repertoire [ par valoide ] je cherche une fonction permettant de selectionner non pas les fichiers mais les repertoires (via une cdialog si possible).merci chercher un repertoire [ par MrKribou ] comment faire pour chercher le path couplet d'un repertoire a partir d'attributs comme le nom du repertoire a chercher (ex : mesdocument) ou bien enco desinstallateur [ par naney ] Je veut faire un desinstalleur mais je suis obliger de m'aitre le dessinstallateir dans le repertoire des fichier que je veut suprimmer j'ai eseaille creer un repertoire [ par vinc ] j'aimerais savoir comment creer un dossier, et savoir s'il est possible de se servir de la boite de dialogue Ouvrir ?merci d'avance OpenDialog : Choix d'un repertoire [ par mindark ] BonjourJ'aimerais que l'utilisateur choisisse un repertoire.Pour cela, j'utilise un OpenDialog, mais il veut absolument que je choisisse un fichier..J Help!!! copier un fichier ds un autre repertoire [ par mavric ] Salut je cherche a copier un fichier vers un autre repertoire.Pour copier j'utilise la fonction CopyFile,g bien essayer de mettre un chemin en plus du je viens vous rebassiner avec les lib [ par WuShu ] pitié !! dites moi comment inclure un .lib a un projet avec builder C ++ car ca ne suffit pas de mettre le .lib dans le repertoire lib du compilateur URGENT : ITEMIDLIST et autres [ par Shouwi ] Bonjours, j'ai un probleme qui m'enerve à un haut point, j'expose le probleme : je me sert d'unGetOpenFileName(LPOPENFILENAME)afin de selectionner plu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales