[C] lister un repertoire...

lister un repertoire... [C] - C++ - Programmation

Marsh Posté le 11-04-2002 à 16:17:11    

j aimerait pouvoir obtenir la liste des fichiers contenu dans un repertoire donné en C pour ensuite stockés dans un tableau les noms de tout ces fichiers.
vous savez comment je peux faire?
j'aimerait aussi que mon programme en C sache ou ce trouve le dossier bureau (car le chemin differe selon l'os et l utilisateur par ex...)
 
merci de votre aide

Reply

Marsh Posté le 11-04-2002 à 16:17:11   

Reply

Marsh Posté le 11-04-2002 à 16:24:12    

readdir


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
Reply

Marsh Posté le 11-04-2002 à 16:26:46    

Jar Jar a écrit a écrit :

readdir  




 
je comprend que parfois ca soule de donner une vrai reponse redigé mais la  :crazy:  
peut tu me donner l adresse d un site ou jpe connaitre le prototype de cette fonction?

Reply

Marsh Posté le 11-04-2002 à 16:29:08    

veryfree a écrit a écrit :

 
 
je comprend que parfois ca soule de donner une vrai reponse redigé mais la  :crazy:  
peut tu me donner l adresse d un site ou jpe connaitre le prototype de cette fonction?  




 
 
google [:veryfree]

 

[jfdsdjhfuetppo]--Message édité par mr_mat--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 11-04-2002 à 16:38:40    

veryfree a écrit a écrit :

 
 
je comprend que parfois ca soule de donner une vrai reponse redigé mais la  :crazy:  
peut tu me donner l adresse d un site ou jpe connaitre le prototype de cette fonction?  




 
http://forum.hardware.fr/recherche.gif


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Reply

Marsh Posté le 11-04-2002 à 16:43:15    

veryfree a écrit a écrit :

je comprend que parfois ca soule de donner une vrai reponse redigé mais la  :crazy:  
peut tu me donner l adresse d un site ou jpe connaitre le prototype de cette fonction?


man readdir


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
Reply

Marsh Posté le 11-04-2002 à 16:48:21    

Jar Jar a écrit a écrit :

man readdir  




 
je suis sous windows et la je cherche sur google...

Reply

Marsh Posté le 11-04-2002 à 16:49:11    

veryfree a écrit a écrit :

je suis sous windows et la je cherche sur google...


Tu peux aller voir sur http://www.cygwin.com/
Ça inclut les manpages.


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
Reply

Marsh Posté le 12-04-2002 à 00:14:01    

Jar Jar a écrit a écrit :

Tu peux aller voir sur http://www.cygwin.com/
Ça inclut les manpages.  




j ai trouver ca
http://cygwin.com/cygwin-api/std-posix.html#AEN64
mais jla trouve ou cette (Section 5) ??
 
merci de ton aide
je ramme severe la

Reply

Marsh Posté le 12-04-2002 à 00:37:00    

Tout est dans le programme. Tu installes les paquets qui contiennent les pages de man, et tu fais "man unefonction".


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
Reply

Marsh Posté le 12-04-2002 à 00:37:00   

Reply

Marsh Posté le 12-04-2002 à 01:42:43    

$ man readdir
No manual entry for readdir
 :cry:  
Pas sympa où alors mon cygwin est pas complet :(
Enfin bon en cherchant j'ai trouvé cette fonction dans Dev-C++
(dirent.h), bien sûr c'est pas AINSI du tout et c'est juste un portage depuis UNIX car selon l'auteur c'est très utile pour les gens qui porte des prog de UNIX->Windows

Reply

Marsh Posté le 12-04-2002 à 02:37:41    

Reply

Marsh Posté le 12-04-2002 à 09:47:07    

suri a écrit a écrit :

stat lstat


Un peu bourrin, quand même... La fonction readdir est quand même un peu plus haut niveau.
 
Ça m'étonne que cygwin ne l'inclue pas, ils ont juste du oublier la manpage, parce que c'est une fonction POSIX, et hyper courante qui plus est.


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
Reply

Marsh Posté le 12-04-2002 à 10:16:26    

je prefererait faire du c ansi enfin je developpe avec devc++
si je suis obligé de télécharger des biblio ca m interesse plus trop en fait
personne n aurait deja fait ca?
j ai trouvé ca mais ca compil po  :(  

Citation :

/*  
 * Utilisation de la fonction readdir() et mkdir():
 * on cree un directory "junk" a partir du directory  
 * courant. Ensuite on cree le fichier "bar" sous ce  
 * nouveau directory. Enfin on ouvre le directory pour  
 * lire son contenu.
 */
 
#include <dirent.h>  
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
 
char  * path = "junk/bar";
 
main(){  
  struct dirent * t_readdir();
  DIR *  t_opendir();  
  int    t_mkdir();
  int    t_open();  
  int    t_close();
  int    t_closedir();
  DIR *  dirp;  
  struct dirent * dp;  
  int    fd;  
 
  t_mkdir("junk", 0752);  
  fd = t_open(path, O_CREAT, 0777);  
  dirp = t_opendir("junk" );  
  for(dp = t_readdir(dirp); dp != NULL ; dp = t_readdir(dirp))
    printf("dp->d_name = %s\n", dp->d_name);  
  t_close(fd);  
  t_closedir(dirp);  
  return 0;  
}
 
#define SYS_ERR -1  
 
int t_mkdir(path, mode) char * path; int mode; {
 
  if((mkdir(path, mode) == SYS_ERR)){
    perror("mkdir" );  
    exit(1);  
  }
  return 0;  
}
 
struct dirent *  
t_readdir(dir) DIR * dir;{
  struct dirent * dirp;  
  if(((dirp = readdir(dir)) == NULL) && errno != 0){
    perror("readdir" );  
    exit(1);
  }
  return dirp;  
}
 
 

Reply

Marsh Posté le 12-04-2002 à 10:25:14    

Pour le dossier bureau t'as une fonction qui s'appelle SHGetSpecialFolderPath ou FolderLocation, tu files les param et windows te renvoie tout ca en fonction de ce que tu veux.


---------------
Super.
Reply

Marsh Posté le 12-04-2002 à 10:40:27    

Godbout a écrit a écrit :

Pour le dossier bureau t'as une fonction qui s'appelle SHGetSpecialFolderPath ou FolderLocation, tu files les param et windows te renvoie tout ca en fonction de ce que tu veux.  




 
merci jvai faire une recherche sur ca aussi...

Reply

Marsh Posté le 12-04-2002 à 23:58:19    

Sous Windows:
FindFirstFile
FindNextFile
et compagnie...

Reply

Marsh Posté le 14-03-2007 à 15:37:13    

fabsk a écrit :

Sous Windows:
FindFirstFile
FindNextFile
et compagnie...


C'est toujours d'actualité? (c'est le meilleur moyen avec MS Visual C++ 2005 Express?)  :??:  

Spoiler :

std::cout << "UP" << ":D" << endl;

Reply

Marsh Posté le 14-03-2007 à 15:47:34    

Oui, ça l'est toujours pour autant que je sache; tu peux aussi t'appuyer sur boost:filesystem si tu veux un truc plus C++ ;)

Reply

Marsh Posté le 14-03-2007 à 15:49:54    

il fout quoi ici ce topic C ?

Reply

Marsh Posté le 14-03-2007 à 15:51:21    

je sais pas, j'avais pas remarqué ou il était en faisant la recherche [:cosmoschtroumpf]


Message édité par Ben_be le 14-03-2007 à 15:51:32
Reply

Marsh Posté le 14-03-2007 à 15:52:38    

la réponse est : pas portable. utilise un truc genre glib (www.gtk.org pour toi boolay)

Reply

Marsh Posté le 14-03-2007 à 15:57:27    

Je me disais aussi que c'est pas portable :o
D'ou ma question :o
merci :o

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed