Taille fichier

Signaler
Messages postés
40
Date d'inscription
mercredi 10 mai 2006
Statut
Membre
Dernière intervention
5 juin 2008
-
Messages postés
244
Date d'inscription
vendredi 6 mai 2005
Statut
Membre
Dernière intervention
6 avril 2008
-
bonjour,
comment peut on récupéré la taille d'un fichier ?

merci

5 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
Sous Windows:
GetFileSize
ou GetFileSizeEx
ou FindFirstFile

ciao...
BruNews, MVP VC++
Messages postés
244
Date d'inscription
vendredi 6 mai 2005
Statut
Membre
Dernière intervention
6 avril 2008
1
FILE * fichier = NULL;
fichier = fopen(Nom_Du_Fichier, "rb");

if ( fichier == NULL) return;

fseek(fichier , 0, SEEK_SET );//On est au début
fseek(fichier , 0, SEEK_END ); //On trouve la fin du fichier
long Taille = ftell(fichier); //Lire le nombre d'octets

A+
Bonne programmation
<hr size="2" width="100%" />                                         Site
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
Ton fseek(fichier , 0, SEEK_SET ) n'est pas au bon endroit. C'est après le ftell qu'il devrait se trouver.

Si son code ne fonctionnera que sous Windows, mieu vaut utiliser GetFileSize.

C++ (@++)<!--
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
Sans compter que si le fichier est deja ouvert en exclusif par un autre processus, la taille ne sera jamais retournée.
Il n'y aura en ce cas que FindFirstFile pour assurer le résultat.

ciao...
BruNews, MVP VC++
Messages postés
244
Date d'inscription
vendredi 6 mai 2005
Statut
Membre
Dernière intervention
6 avril 2008
1
BruNews => C'est vrai, si fichier == NULL (on peut pas l'ouvrir, etc...) ça marche pas mais c'était pour montrer une autre solution (peut etre moins bonne, certes).

SAKingdom => OK merci pour l'info (fseek était avant ET après mais je l'avais enlevé)

A+
Bonne programmation
<hr size="2" width="100%" />                                         Site