C/C++ Ouvrir et utiliser dossier hors répertoire de l'executable
Bonjour,
Bon je post parce que j'ai vraiment un gros souci dont je n'arrive pas à trouver la réponse.
Je cherche avec un programme en C++ à ouvrir un dossier qui se trouve en dehors du répertoire ou se trouve l'executable, bon au départ j'ai utilisé POSIX et opendir(), ca marche bien quand je lui donne un chemin relatif au répertoire ou se trouve l'exe mais pas que je lui passe C:\Documents and Settings\...\Mes documents\test.
Bon je ce sais pas à quoi c'est due...
Maintenant j'ai vu sur developpez.com une api propre à windows mai je n'arrive pas à l'utiliser (par exemple pour récuperer le nom du fichier, ect...), voici la page : http://c.developpez.com/faq/?page=fi...dir_list_POSIX
Donc voila je voulais savoir si quelqu'un a une bonne technique sachant que ùmon super programme doit marcher sur linux et windows et que je travail pour l'instant sur windows avec dev-C++.
Voici le code récalcitrant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
/*
Fonction vérifiant la présence d'un fichier nommé file_name
dans un dossier dir_name
Renvoit 1 si fichier trouvé
0 si fichier introuvable
-1 si erreur
*/
int file_in_dir(char dir_name [],char file_name [])
{
DIR *dp; /* variable dossier */
struct dirent *ep; /* structure pour lire deans le dossier DIR* */
int trouve = 0; /* booléen : 1 si fichier trouvé, 0 sinon */
dp = opendir (dir_name); /* on ouvre le dossier */
if (dp != NULL) /* test de l'ouverture du dossier */
{
while ((ep = readdir (dp)) && trouve == 0) /* tant qu'il y a des entrées à lire et qu'on a pas trouvé, on les lit */
{
//char * tampon;
//printf("%s",getcwd(tampon,50));
printf("%s\n",ep->d_name);
if (strcmp(ep->d_name,file_name) == 0) /* si l'entrée lue == le fichier recherché */
{
trouve = 1; /* on a trouvé, on sort de la boucle */
}
}
closedir (dp); /* fermeture du dossier */
return trouve; /* retourne résultat recherche */
}
else
{
return -1; /* si problème lecture dossier */
}
} |
merci beaucoup d'avance... :D