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 : Sélectionner tout - Visualiser dans une fenêtre à part
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...![]()
Partager