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

  FORUM HardWare.fr
  Programmation
  C

  connaitre la taille d'un fichier en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

connaitre la taille d'un fichier en C

n°1962212
bansan
Posté le 02-02-2010 à 11:02:35  profilanswer
 

Bonjour,
Aprés avoir fouillé tout les forums sur Internet, je ne trouve pas d'exemple clair montrant comment calculer la taille d'un fichier en C
Je suis sous windows avec le logiciel code::block
 
Je ne sais pas si il faut utiliser la structure stat ni comment d'ailleurs, ou fseek ??
 
Jusqu a present j'en suis à:
Ouverture d'un dossier
Recherche d'un fichier
Une fois le fichier trouvé je ne sais pas comment trouver sa taille (sachant que ce fichier fait plus de 100 Mo ( et qu a priori une fois que cela depasse un certain nombre d'octets il faut prendre une autre fonction pour trouver la taille)
 
Si quelqu'un pouvait m'aider
merci beaucoup

mood
Publicité
Posté le 02-02-2010 à 11:02:35  profilanswer
 

n°1962221
gilou
Modérateur
Modzilla
Posté le 02-02-2010 à 11:21:46  profilanswer
 

A priori, il suffit d'utiliser stat ou fstat et de récupérer la valeur du champ st_size
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°1962226
olivthill
Posté le 02-02-2010 à 11:27:27  profilanswer
 

Code :
  1. /* ==============================================================
  2.    Récupère la taille d'un fichier
  3.    ============================================================== */
  4. UINT32 get_file_size(char *file_name)
  5. {
  6.    FILE *fp;
  7.    UINT32 file_size;
  8.    file_size = 0;
  9.    if ((fp = fopen(file_name, "rb" )) == NULL) {
  10.       fprintf(stderr, "Cannot open %s.\n", file_name);
  11.       return(file_size);
  12.    }
  13.    if (fseek(fp, (long)(0), SEEK_END) != 0) {
  14.       fclose(fp);
  15.       return(file_size);
  16.    }
  17.    file_size = (UINT32) (ftell(fp));
  18.    fclose(fp);
  19.    return(file_size);
  20. }


Message édité par olivthill le 02-02-2010 à 11:27:55
n°1962229
bansan
Posté le 02-02-2010 à 11:29:47  profilanswer
 

merci pour ton aide,
Je vais l'essayer  
merci beaucoup
 
Concernant stat ...je crois qe c'est possible que si tu es sous unix
je suis sous windows

n°1962234
bansan
Posté le 02-02-2010 à 11:40:43  profilanswer
 

Il me manque certaines infos pour comprendre comment integrer  le bout de code "taille du fichier" au code que j'ai fait que voici:
 
int main ()
{
   DIR *rep = NULL;
   char ext[] = ".avi";
   char *p_ext;
   char lecteur[] = "D:/test/";
   char rech[256];
   long telldir (DIR * rep);
   int closedir ();
   char *racine[256];
   int tail1;
/*----------------------------------------------------------------------------------------------------------*/
   struct dirent *fichierLu = NULL;
   rep = opendir (lecteur);                     //OUVERTURE REPERTOIRE
   if (rep == NULL)
   {
      perror ("Erreur " );
      exit (EXIT_FAILURE);
   }
   printf ("%s\n", lecteur);
 
   while ((fichierLu = readdir (rep)) != NULL)
   {
   if(strstr(fichierLu->d_name,ext))               RECHERCHE FICHIER CONTENANT EXTENSION RECHERCHéé
      {
         strncpy (rech, fichierLu->d_name, 255);   // je met le fichier ou les fichier recherchés dans une variable "rech"
 
.....                       /// je recherche la taille du fichier...
   return 0;
}
 
 
Comment integrer ton bout de code au mien???
 
merci

n°1963532
Sve@r
Posté le 05-02-2010 à 23:08:06  profilanswer
 

bansan a écrit :

Comment integrer ton bout de code au mien???
merci


Ben tu pourrais faire un effort !!! Il t'a fait une fonction qui prend en paramètre un nom de fichier et qui te renvoie sa taille. T'as qu'à recopier sa fonction à un endroit quelconque de ton source et l'appeler quand t'en as envie en lui passant devine quoi... le nom du fichier dont tu veux la taille !!!


Message édité par Sve@r le 05-02-2010 à 23:11:47

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

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

  connaitre la taille d'un fichier en C

 

Sujets relatifs
[Résolu] Exercice C, structure, type, compilation modulaireRécupérer un fichier indépendamment de la casse de son extension
rediriger un index via un fichier htaccessPas de fichier my.cnf
écrire plus que 32767 octets dans un fichier!![C] Lire un fichier . txt
fichier csv et perte de saut de ligne !![Resolu] Problème de récupération d'un fichier résultat de POST (API)
[Python] Supprimer la fin d'un fichier texte 
Plus de sujets relatifs à : connaitre la taille d'un fichier en C


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