Compter le nombre de fichier d'un répertoire en C (ss Linux) - C++ - Programmation
Marsh Posté le 30-07-2002 à 10:32:47
J'avais deja posé la question il y a quelques temps !
http://forum.hardware.fr/forum2.ph [...] h=&subcat=
Marsh Posté le 30-07-2002 à 10:36:40
bartleby a écrit a écrit : J'avais deja posé la question il y a quelques temps ! http://forum.hardware.fr/forum2.ph [...] h=&subcat= |
ce qu'on t'y a donné, c des fonctions de windows...
Marsh Posté le 30-07-2002 à 10:37:11
Poulou a écrit a écrit : La question est dans le sujet... Y'a t-il des fcts prédéfinis (je regardais du coté de stat.h et dirent.h ??...) pour le faire. J'aimerai en plus ne compter que le nombre de fichier .txt par exemple, facile à faire ? (tt ceci est sous Linux) Merci ! |
a mon avis, c des fonction dépendantes de l'OS, tu trouveras surement pas ça en C ANSI...
Marsh Posté le 30-07-2002 à 10:40:41
el_gringo a écrit a écrit : a mon avis, c des fonction dépendantes de l'OS, tu trouveras surement pas ça en C ANSI... |
JE suis assez daccord avec ça.
Marsh Posté le 30-07-2002 à 10:43:25
OK merci pour les réponses
Si qquelqu'un sait le faire sous Linux, je prends volontier ! Sinon je vais chercher ça dans les man !
Marsh Posté le 30-07-2002 à 10:44:36
Citation : tt ceci est sous Linux |
A merde, faudra que j'apprenne a lire les questions en entier !! !
Marsh Posté le 30-07-2002 à 10:51:33
Poulou a écrit a écrit : OK merci pour les réponses Si qquelqu'un sait le faire sous Linux, je prends volontier ! Sinon je vais chercher ça dans les man ! |
ben tu peux bidouiller un truc du genre system("ls *.txt >pipo.pipo" ), ouvrir pipo.pipo, compter les lignes et le détruire.
c'est bidouille mais c'est ANSI
Marsh Posté le 30-07-2002 à 11:01:55
prettysmile a écrit a écrit : ben tu peux bidouiller un truc du genre system("ls *.txt >pipo.pipo" ), ouvrir pipo.pipo, compter les lignes et le détruire. c'est bidouille mais c'est ANSI |
Si tu dis que c de l'ANSI, c que ça doit être vrai.
Après, l'intérêt de l'ANSI, c d'être compilable sur toutes les plateformes... c pas vraiment le cas de ton truc.
Marsh Posté le 30-07-2002 à 11:03:17
el_gringo a écrit a écrit : Si tu dis que c de l'ANSI, c que ça doit être vrai. Après, l'intérêt de l'ANSI, c d'être compilable sur toutes les plateformes... c pas vraiment le cas de ton truc. |
ça l'est dans le sens ou cela n'utilise que des fonctions de la biblio c ANSI, c ce que je voulais dire
Marsh Posté le 30-07-2002 à 11:11:40
Ya une bibliothéque de gestion des répertoire sous les système unix (par contre me souvient jamais de son nom)
Marsh Posté le 30-07-2002 à 11:18:11
letoII a écrit a écrit : Ya une bibliothéque de gestion des répertoire sous les système unix (par contre me souvient jamais de son nom) |
dans ce cas
http://www.developpez.com/kylix/systeme/list_dir.htm
Marsh Posté le 30-07-2002 à 12:07:30
dirent.h
documenté ici :
http://www.phim.unibe.ch/comp_doc/ [...] htm#dirent
(environ 30 secondes de recherche sur google !)
Marsh Posté le 30-07-2002 à 12:42:40
Poulou a écrit a écrit : La question est dans le sujet... Y'a t-il des fcts prédéfinis (je regardais du coté de stat.h et dirent.h ??...) pour le faire. J'aimerai en plus ne compter que le nombre de fichier .txt par exemple, facile à faire ? (tt ceci est sous Linux) Merci ! |
Je t'invite à consulter la documentation de la GNU Libc, en particulier http://www.gnu.org/manual/glibc-2. [...] tml#SEC268
Tu y trouveras tout ce qu'il te faut. Il est probable que opendir(), readdir(), et closedir() te suffisent largement. Tu trouveras même des exemples. Il n'existe malheureusement pas de moyen standardisé (en tous cas dans POSIX), à ma connaissance, d'obtenir directement le nombre de fichiers d'un répertoire. Dans certaines implémentations des normes POSIX, telles que GUSI POSIX, le champ st_size de fstat() le renvoit, mais ça n'est pas le cas sous la plupart des Un*x. Celà est d'ailleurs un comportement assez normal, dans la mesure où sur certains systèmes, on ne peut pas updater les informations de stat retenues par le système à chaque changement dans ce qui serait affiché par un readdir dans le répertoire. (pensez à un ftpfs ou un autre système de fichier distribué de ce type)
Si tu veux de plus ne lister que certains fichiers, utilise scandir(), et passe lui une fonction de selection (3ème argument) qui renverra 1 (par exemple) pour seulement les fichiers .txt, par exemple.
Marsh Posté le 30-07-2002 à 13:35:44
Merci pour toutes ces précisions, ça devrait être bon avec "dirent.h"
Marsh Posté le 30-07-2002 à 10:10:42
La question est dans le sujet... Y'a t-il des fcts prédéfinis (je regardais du coté de stat.h et dirent.h ??...) pour le faire. J'aimerai en plus ne compter que le nombre de fichier .txt par exemple, facile à faire ? (tt ceci est sous Linux)
Merci !
Message édité par Poulou le 30-07-2002 à 10:43:38