Chercher un repertoire

Signaler
Messages postés
21
Date d'inscription
dimanche 18 août 2002
Statut
Membre
Dernière intervention
8 novembre 2002
-
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006
-
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 encore a partir d'un document present dans ce repertoire. (mais je prefererai la premiere solution dans mon cas :))
Merci en tk !

6 réponses

Messages postés
27
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
7 janvier 2003

tu peux le faire avec FindFirstFile et FindNextFile en utilisant le mask DIRECTORY (ou un truc dans le style)
regarde dans l'aide pour savoir comment les utiliser
Messages postés
21
Date d'inscription
dimanche 18 août 2002
Statut
Membre
Dernière intervention
8 novembre 2002

Ok merci ! ca a l'air de marcher mais j'ai un autre probleme (ahhh quand on est debutant on bloque toute les deux minutes *soupir*)

Donc la fonction FindFirstFile et FindNextFile en utilisant l'attribut FILE_ATTRIBUTE_DIRECTORY, j'arrive a obtenir le repertoire mais qui est de type TCHAR, et la j'ai tout essayer mais pas moyen de reussir a le comparer avec une chaine que je veux.

Faut que j'utilise quoi pour savoir si la chaine est la meme ?

Et j'en profite pour poser une question plus theorique,
si on alloue une chaine char machaine[MAX_PATH] par exemple, et qu'ensuite cette chaine vaut "blabla", la taille de machaine vaut encore MAX_PATH ou vaut 6 (ou 7 chais plus) ?

Bientot jle promets c moi qui repondrai aux questions :)
Messages postés
21
Date d'inscription
dimanche 18 août 2002
Statut
Membre
Dernière intervention
8 novembre 2002

Ok merci ! ca a l'air de marcher mais j'ai un autre probleme (ahhh quand on est debutant on bloque toute les deux minutes *soupir*)

Donc la fonction FindFirstFile et FindNextFile en utilisant l'attribut FILE_ATTRIBUTE_DIRECTORY, j'arrive a obtenir le repertoire mais qui est de type TCHAR, et la j'ai tout essayer mais pas moyen de reussir a le comparer avec une chaine que je veux.

Faut que j'utilise quoi pour savoir si la chaine est la meme ?

Et j'en profite pour poser une question plus theorique,
si on alloue une chaine char machaine[MAX_PATH] par exemple, et qu'ensuite cette chaine vaut "blabla", la taille de machaine vaut encore MAX_PATH ou vaut 6 (ou 7 chais plus) ?

Bientot jle promets c moi qui repondrai aux questions :)
Messages postés
27
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
7 janvier 2003

ben deja, une petite precision sur le mask FILE_ATTRIBUTE_DIRECTORY, pour l'utiliser correctement, utilise un "et" logique:
if(wfd.FileAttribute && FILE_ATTRIBUTE_DIRECTORY)
{
fonction;
}

wfd = la structure WIN32FILEDATA

sinon, la taille de la chaine reste MAX_PATH meme si le nom de fichier est plus petit mais l'interet et que tu peux changer le nom de fichier a la volé sans réatribuer de la mémoire, en plus de ca, c'est suremnt pas la plus grande perte de mémoire!

pour comparer le nom de fichier, tu peux utiliser (je pense):
if(!strcmp(nom de ton fichier, wfd.FileName))
{
fonction;
}

strcmp retourne 0 si les 2 chaines sont identiques
il faut inclure string.h

bon voila je pense avoir répondu à tes questions
j'ai tout fais de tete donc y'a peut etre quelques fautes de synthaxe!

bon continuation!
Messages postés
21
Date d'inscription
dimanche 18 août 2002
Statut
Membre
Dernière intervention
8 novembre 2002

J'ai essayer la condition wfd.FileAttribute && FILE_ATTRIBUTE_DIRECTORY et la il ne me filtre rien du tout alors que si je met l'operateur == comme j'avais fait ca marche. c'est koi le probleme ?
J'aime pas que mes programmes marchent alors sans comprendre :p

Merci pour les infos supplementaire.
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

En fait, ce n'est pas un "Et logique" (&&) que tu dois utiliser, mais un "Et binaire" (&).

if((wfd.FileAttribute & FILE_ATTRIBUTE_DIRECTORY)==FILE_ATTRIBUTE_DIRECTORY)
{
fonction;
}