begin process at 2012 02 12 08:16:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Savoir si un fichier un est repertoire


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

Savoir si un fichier un est repertoire

vendredi 3 mars 2006 à 12:34:06 | Savoir si un fichier un est repertoire

poktopok



J'utilise une structure du type WIN32_FIND_DATA File, pour un parcours de fichiers. Mais je n'arrive pas a parcourir les sous dossier. Apparamment il faut comparer, DWORD dwFileAttributes et TCHAR cFileName[MAX_PATH] pour savoir si c'est un répertoire, mais je ne sais pas comment les comparer.
Merci de m'aider.
vendredi 3 mars 2006 à 12:57:36 | Re : Savoir si un fichier un est repertoire

ricky78

Bonjour

par exemple

WIN32_FIND_DATA wfd;
hfind = FindFirstFile ( thepath, &wfd );
 if (hfind != INVALID_HANDLE_VALUE)
 {
  do
  {
   if( wfd.cFileName[0] != '.')
   {
if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
    { // C'est un repertoire
 }
else
{
//c'est un fichier
}
 }
  
  }while(FindNextFile( hfind, &wfd));
  FindClose(hfind);

Cordialement
TOCHE
vendredi 3 mars 2006 à 12:58:31 | Re : Savoir si un fichier un est repertoire

vecchio56

Administrateur CodeS-SourceS
Exemple de parcours des sous-dossiers: http://www.cppfrance.com/codes/TROUVER-CHAINE-CARACTERES-DANS-TOUT-DISQUE_19039.aspx
samedi 4 mars 2006 à 09:08:03 | Re : Savoir si un fichier un est repertoire

yserver

Bonjour
Voici un petit exemple d'utilisation de FindFirstFile() FindNextFile() qui permet de parcourir un repertoire et tous ces sous repertoire. C'est tiré d'une classe que j'ai faite. Les commentaires doivent suffire.

void CRepertoire::ScanRep (char *cRepertoire)
{
 //Déclaration des variables
 char cChemin [512];
 DWORD dwTaille;
 WIN32_FIND_DATA wData;
 HANDLE hFind;

 //Initialisation des variables
 //Ajout de \*.* cChemin
 strcpy(cChemin, cRepertoire); strcat(cChemin, "\\*.*");
 //Initialisation du Handle de recherche de fichiers
 hFind = FindFirstFile(cChemin, &wData);
 //Suppresion de \*.* a cChemin
 strcpy(cChemin, cRepertoire);
 
 if (hFind != INVALID_HANDLE_VALUE)
  {
  do
   {
   if(wData.cFileName[0] != '.')
    {
    //Increment la barre de progression
 
        //Si C'est un répertoire
    if (wData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
     {
 
     //puisque c'est un repertoire, on recupere la nouvelle adresse, et on va rentrer dedans...
     strcpy(cChemin, cRepertoire); strcat(cChemin, "\\"); strcat(cChemin, wData.cFileName);
     //On rappelle la fonction pour qu'elle analyse le sous répertoire
     ScanRep(cChemin);
     ulNbRep ++;
     // revient un repertoire en arriere
     strcpy(cChemin, cRepertoire);
     }
    //Si non c'est un fichier
    else
     {
     // ce n'est pas un répèrtoire donc le fichier est analysé
     strcpy(cChemin, cRepertoire); strcat(cChemin, "\\"); strcat(cChemin, wData.cFileName);
     ulNbFichiers ++;
     dwTaille = (wData.nFileSizeHigh * (MAXDWORD+1)) + wData.nFileSizeLow;
     ulTailleMo += (int)(dwTaille/1048576);
     }
    }
   } while ( FindNextFile ( hFind , &wData ) ) ;
  }
 FindClose( hFind );
}

Bon courrage.



Cette discussion est classée dans : fichier, comparer, repertoire


Répondre à ce message

Sujets en rapport avec ce message

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 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 Comparer deux fichier [ par LordBob ] Salut a tous, en fait je voudrai creer deux fonctions, la premiere comparerai deux fichiers txt ligne par ligne et la deuximere comparerai deux fich Sauver un fichier dans un repertoire différent du repertoire courant! [ par jujunio ] Bonjour,Voilà mon pb, je souhaiterais sauver un fichier dans un répertoire autre que le répertoire courant et je ne sais pas comment m'y prendre. voil detecter fichier dans un repertoire en C [ par tdeco ] SLTje souhaite détecter en C un fichier txt dans un répertoiretant le fichier n'as été détecté , le prog continu de le chercher.j'ai déja fait une bou repertoire, dossier, fichier et disc dur ... [ par zinotron ] je souhaite devellopper un prog ki soit capable de me donner le meme resultat que la commande tree (MS-DOS) mais qui soit portable (cad sans findnextf help fonction recursive [ par gege1024 ] qq'un peut-il me venir en aide pour rendre ma source recursive aux sous-repertoire, c'est a dire que je veux relancer le traitement findfirstfile sur lister une arborescence de repertoire [ par krater ] bonjour, je souhaite réaliser un programme en C sous unix/linux qui rentre dans un fichier texte la liste des fichier du repertoir passer en parametre réécriture dans un fichier texte [ par souris11 ] alors le problème c'est que quand le fichier est vide et que j'enregistre dedans tout va bien mais quand il y a déjà quelque chose et que je veux enre List de repertoire et de fichier [ par WaFFel ] bien c'est bien simple mais pour moi c'est tres complex.je cherche a faire un programbe pour la gestion de mes fichier mais jai un petit problem.je vo


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,686 sec (4)

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