Taille d’un fichier ?

cs_JCpp
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010
- 19 oct. 2003 à 19:24
cs_JCpp
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010
- 20 oct. 2003 à 20:25
Je cherche une fonction pour connaître la taille d’un fichier et même voir d’un répertoire en Ko.

Merci

14 réponses

BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
19
19 oct. 2003 à 19:42
GetFileSize ou FindFirstFile, la seconde pour tout un dossier en le parcourant.
BruNews, ciao...
0
vObjects
Messages postés
17
Date d'inscription
samedi 11 octobre 2003
Statut
Membre
Dernière intervention
29 décembre 2003

19 oct. 2003 à 20:47
http://www.cppfrance.com/code.aspx?ID=11283
Cette class contient des fonctions permettant de
récupérer la taille d'un fichier, plusieurs fichiers ainsi
que la taille d'un répetoire, etc ...

*%*%*%*%*%*%*%
%
* vObjects
%
*%*%*%*%*%*%*%
0
garslouche
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015
1
20 oct. 2003 à 12:41
Sinon tu as une autre solution :

FILE* pFile = fopen( "tonfichier.xxx", "rb" );
fseek( pFile, 0, SEEK_END );
long nSize = ftell( pFile );
0
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
19
20 oct. 2003 à 12:52
garslouche, NON !
Une taille de fichier doit etre sur 64 bits a notre epoque, donc se servir de GetFileSize ou FindFirstFile.
BruNews, ciao...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
garslouche
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015
1
20 oct. 2003 à 13:56
Je n'avais jamais fait attention que les tailles étaient différentes...mais bon 4Go c'est qd même une limite difficilement accessible...quoique avec les DVD ça doit commencer à se trouver...

Ceci-dit GetFileSize utilise un DWORD càd 32 bits aussi. Il faut utiliser GetFileSizeEx pour faire du 64 bits. :approve) (ou FindFirstFile)
0
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
19
20 oct. 2003 à 14:01
Faut regarder MSDN, GetFileSize comme FindFirstFile rendent les tailles sur 64 bits.
BruNews, ciao...
0
garslouche
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015
1
20 oct. 2003 à 15:05
Ah là pas d'accord...

The GetFileSize function retrieves the size of a specified file. 

This function stores the file size in a DWORD value. To retrieve a file size that is larger than a DWORD value, use the GetFileSizeEx function. 


Et

DWORD : 32-bit unsigned integer. 


Ils n'auraient qd même pas changé??? (ma version : avril 2001)
0
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
19
20 oct. 2003 à 15:10
et le 2eme param, il sert a quoi ?
c'est le HIDWORD des 64 bits !!!
BruNews, ciao...
0
garslouche
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015
1
20 oct. 2003 à 15:17
AH ok.....autant pour moi.... ?-)

Ceci-dit c'est qd même mal fichu...une partie est retournée et l'autre est stockée par pointeur...Mais surtout ce que je trouve mal fait c'est MSDN dit que si on veut bosser en 64 bits il faut GetFileSizeEx !
N'empêche que pour faire du 64 bits GetFilSizeEx c'est plus simple! :-p
0
cs_JCpp
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010

20 oct. 2003 à 19:20
Heu.. Désolé..

Pourquoi j’obtiens : (null) ?

HANDLE hFile;
LPSTR str_NomFichier="c:\\Ecran_veille1.exe";
hFile = CreateFile(str_NomFichier,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
DWORD Taille = GetFileSize(hFile,NULL); //mesure la taille du fichier
char buf[100000]; sprintf(buf, "%s",Taille);
SendMessage (GetDlgItem(hdlg,ID_TXT),EM_REPLACESEL, FALSE,(LPARAM) buf) ;

Merci
0
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
19
20 oct. 2003 à 19:28
Si tu viens de le creer c'est normal, size = 0;
BruNews, ciao...
0
cs_JCpp
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010

20 oct. 2003 à 20:08
Je n’arrive toujours pas à afficher la taille du fichier.

Dans le code, il n’ y a pas de size = 0;

Apres l’avoir créer, il faut le lire « ReadFile », je ne vois pas la démarche pour aboutir.
0
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
19
20 oct. 2003 à 20:16
char buff[20];
HANDLE hFile = CreateFile(....)
DWORD size = GetFileSize(hFile, 0);
CloseHandle(hFile);
ultoa(size, buff, 10);
MessageBox(0, buff, "TAILLE", 0);
BruNews, ciao...
0
cs_JCpp
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010

20 oct. 2003 à 20:25
Ok, en faite, c’étai un problème de conversion.
(« sprintf » au lieux de «ultoa» ça aurai du fonctionné quand même)
Merci, ça fonctionne
ciao... BruNews
0