Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1103 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C] Comment calculer la taille d'un fichier??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Comment calculer la taille d'un fichier??

n°334686
*LighTninG​*
Posté le 16-03-2003 à 22:07:19  profilanswer
 

J'ai ces deux fonctions mais aucunes des deux ne fonctionnent...
 
La 1ere...

Code :
  1. long calcul_taille(FILE * file)
  2. {
  3. float count=0;
  4. unsigned char n;
  5. while(!feof(file))
  6. {
  7. fread(&n,sizeof(unsigned char),1,file);
  8. count++;
  9. }
  10. return count;
  11. }


 
La 2e...

Code :
  1. long calcul_taille(FILE * file)
  2. {
  3. fseek(file,0,SEEK_END);
  4. return ftell(file);
  5. }


 
Merci de m'aider :)

mood
Publicité
Posté le 16-03-2003 à 22:07:19  profilanswer
 

n°334710
robbystar
My baby got the bends
Posté le 16-03-2003 à 22:31:16  profilanswer
 

Tu as déjà stat qui te fait ça dans le monde Unix si ça peut t'aider, à moins que tu veuilles le faire toi même :)
 

Code :
  1. #include <sys/stat.h>
  2. #include <unistd.h>
  3. int stat(const char *file_name, struct stat *buf);
  4. int fstat(int filedes, struct stat *buf);
  5. int lstat(const char *file_name, struct stat *buf);
  6. struct stat
  7.               {
  8.                   dev_t         st_dev;     
  9.                   ino_t         st_ino;     
  10.                   mode_t        st_mode;   
  11.                   nlink_t       st_nlink;   
  12.                   uid_t         st_uid;     
  13.                   gid_t         st_gid;     
  14.                   dev_t         st_rdev;   
  15.                   off_t         st_size;     // taille du fichier
  16.                   unsigned long st_blksize; 
  17.                   unsigned long st_blocks; 
  18.                   time_t        st_atime;   
  19.                   time_t        st_mtime;   
  20.                   time_t        st_ctime;   
  21.               };


Message édité par robbystar le 16-03-2003 à 22:33:32
n°334721
Taz
bisounours-codeur
Posté le 16-03-2003 à 22:45:55  profilanswer
 

pas le premier: feof est mal utilisé, ca ne fonctionnera pas. le fait d'utiliser un float va tout perturber. l'epsilon float n'est pas egal à l'int 1, donc le pas n'est pas valide. fread, pourquoi aps fgetc? le resultat variera selon que le fichier est binaire ou texte.
 
la deuxieme solution est un peut mieux: mais il vaudrait mieux sauvegarder le pointeur puis le restaurer afin de ne pas perdre la position courante. voir fgetpos/fsetpos
 
le mieux est de se tourner vers son systeme. *stat marchent au poil

n°334734
*LighTninG​*
Posté le 16-03-2003 à 23:01:09  profilanswer
 

Merci beaucoup ca fonctionne :)


Message édité par *LighTninG* le 16-03-2003 à 23:04:51

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C] Comment calculer la taille d'un fichier??

 

Sujets relatifs
[C++] Declarer des matrices de taille variable...obtenir la taille de la mémoire libre...
Pb ecriture dans un fichier: retour à la ligne?lire et ecrire dans un fichier
enregistrer un fichier au lieu de l'ouvrir dans le navigateurPasser d'un fichier XML à MySQL
changer la taille de la font sur un pda?envoyer un mail depuis excell avec le fichier dans le corps du message
Del fichier plus vieux que tel date 
Plus de sujets relatifs à : [C] Comment calculer la taille d'un fichier??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR