Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Savoir si un fichier un est repertoire [ Archives / Au secours ] (poktopok)

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é 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...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.