OBTENIR LA TAILLE D'UN FICHIER

cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 - 6 mai 2002 à 22:43
ordiman85 Messages postés 41 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 19 mars 2010 - 12 déc. 2008 à 12:17
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/9725-obtenir-la-taille-d-un-fichier

ordiman85 Messages postés 41 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 19 mars 2010
12 déc. 2008 à 12:17
Pour les fichiers superieurs a 2Go et meme a 4Go (teste sur un fichier de 5Go environ) :

#include <stdio.h>

FILE *fp;
__int64 size;

fp = fopen64( "fichier.txt", "rb" );
fseeko64( fp, 0, SEEK_END );
size = ftello64( fp );
soldier8514 Messages postés 295 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 24 janvier 2014 1
18 juin 2006 à 21:05
c bien beau Ragnard mais tu utilises toi aussi un long_

car GetFileSize ne retourne que des long _

donc ici tu charges un long dans un dword _

ce qui en définitive ne sert à rien sinon à utiliser de la mémoire pour rien _ _ _ de plus lutilisation de getfilesize sur des fichiers de plusieurs GiGa ne sert à rien puisquelle te renvoie pas la valeur exacte du fichier puisque _ je le rappelle encore une fois : Getfilesize ne peut renvoyer qu'un long
cs_gaya Messages postés 47 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 10 août 2002
8 août 2002 à 03:59
au passage je signalerai que DWORD est un unsigned long , donc on ne peut le comparer a un long :)
Ils n'ont tout deux simplement pas la même utilité.
cs_gaya Messages postés 47 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 10 août 2002
8 août 2002 à 03:54
Il y a ENCORE plus simple :

#include

long calculerTaille(FILE *fp){
return filelength(fp->_file);
}
cs_RAGNARD Messages postés 2 Date d'inscription vendredi 3 mai 2002 Statut Membre Dernière intervention 8 mai 2002
8 mai 2002 à 00:16
mon commentaire n'etait pas une critique mais une aide pour les devellopeurs debutant qui peuvent ce demander l'interé du DWORD par rapport au long.
cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 4
7 mai 2002 à 12:52
Faut pas le prendre mal. C'est juste pour la culture.
Je te signale que tes DWORD sont ptêt plus pratiques mais la MFC c'est pour Visual C++. Portabilité sur un autre compilo nulle.
A mort le C++ et vive le C
cs_RAGNARD Messages postés 2 Date d'inscription vendredi 3 mai 2002 Statut Membre Dernière intervention 8 mai 2002
7 mai 2002 à 08:36
Je sais mais moi je travaille en MFC et les 'DWORD' sont plus pratique que les 'long'
cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 4
6 mai 2002 à 22:43
Il y a beaucoup plus simple
#include <stdio.h>

long calculerTaille(FILE *fichier)
{
fseek(fichier,0,SEEK_END);//place le pointeur fichier à la fin
return ftell(fichier);//calcule la taille du fichier source
}
Rejoignez-nous