connaitre la taille d'un fichier en C

connaitre la taille d'un fichier en C - C - Programmation

Marsh Posté le 02-02-2010 à 11:02:35    

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

Reply

Marsh Posté le 02-02-2010 à 11:02:35   

Reply

Marsh Posté le 02-02-2010 à 11:21:46    

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é!  --
Reply

Marsh Posté le 02-02-2010 à 11:27:27    

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
Reply

Marsh Posté le 02-02-2010 à 11:29:47    

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

Reply

Marsh Posté le 02-02-2010 à 11:40:43    

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

Reply

Marsh Posté le 05-02-2010 à 23:08:06    

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.
Reply

Sujets relatifs:

Leave a Replay

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