Taille/Nom d'un fichier

Taille/Nom d'un fichier - C - Programmation

Marsh Posté le 09-05-2005 à 00:31:01    

bonjour,
 
je voudrais aller cherché un fichier (texte par exemple) sur mon pc et mettre le nom de ce fichier dans un buffer ainsi que sa taille dans un autre buffer.
 
Merci d'avance pour l'aide
 

Reply

Marsh Posté le 09-05-2005 à 00:31:01   

Reply

Marsh Posté le 09-05-2005 à 02:26:25    

je comprends pas trop ce que tu veux dire par mettre un nom de fichier dans un buffer mais pour ce qui est de savoir la taille d'un fichier:

Code :
  1. #include <stdio.h>
  2. int main(void) {
  3.     FILE *fp;
  4.     size_t i;
  5.     int c;
  6.    
  7.     if((fp = fopen("chemin/vers/ton/fichier.txt", "r" )) == NULL) {
  8.         fprintf(stderr, "!!! Erreur, impossible d'ouvrir le fichier en lecture\n" );
  9.         exit(2);
  10.     }
  11.    
  12.     while((c = fgetc(fp)) != EOF) {
  13.         i++;
  14.     }
  15.     printf("Longueur du fichier: %lu\n", (unsigned long) i);
  16.    
  17.     return 0;
  18. }


---------------
Member of the Yak Shaving Staff | Feedback | www.tsunanet.net
Reply

Marsh Posté le 09-05-2005 à 08:57:01    

TsunaQuake a écrit :

pour ce qui est de savoir la taille d'un fichier:

Code :
  1. size_t i;
  2.     while((c = fgetc(fp)) != EOF) {
  3.         i++;
  4.     }
  5.     printf("Longueur du fichier: %lu\n", (unsigned long) i);
  6. }



Mieux vaut travailler en unsigned long directement. Pour les très gros fichier, ça peut être néanmooins insuffisant. Voir long long si disponible.
 
size_t est le bon type pour les tailles d'objets internes et les index. Pas pour les fichiers.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 09-05-2005 à 11:13:42    

fseek( 0, SEEK_END ) + ftell plutôt non ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 09-05-2005 à 11:17:45    

HelloWorld a écrit :

fseek( 0, SEEK_END ) + ftell plutôt non ?


Oui, mais en mode binaire uniquement.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Sujets relatifs:

Leave a Replay

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