Taille Fichier, SVP !!!

Signaler
Messages postés
105
Date d'inscription
samedi 25 janvier 2003
Statut
Membre
Dernière intervention
13 décembre 2008
-
Messages postés
101
Date d'inscription
vendredi 15 février 2002
Statut
Membre
Dernière intervention
6 août 2007
-
Bonjour un personne m'a donne cette source pour connaitre la taille d'un fichier :
DWORD taille = GetFileSize(hfl, 0);
mais comme je suis un gros NewB, je voudrais savoir comment s'en servir, ex taille de C:\autoexec.bat.

2 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Regarde que taille de C:\autoexec.bat = 0 car ne sert plus mais passons.
DWORD taille = 0;
HANDLE hfl = CreateFile(szBMPFILE, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
if(hfl == INVALID_HANDLE_VALUE) return;
taille = GetFileSize(hfl, 0);
CloseHandle(hfl);

BruNews, ciao...
Messages postés
101
Date d'inscription
vendredi 15 février 2002
Statut
Membre
Dernière intervention
6 août 2007

Bon si tu dis que tu est un gros newbie je vais t'expliquer un peu plus

la fonction GetFileSize prend comme parametre un handle de fichier et un pointer vers un DWORD qui contientra la partie haute de la taille du fichier (si c'est un fichier de moins de 4GO tu t'en fout) en fait tout ce qu'il faut c'est ce handle de fichier.Pour l'avoir tu ouvre le fichier avec CreateFile

CreateFile("c:\\autoexec.bat", //chemin du ficher
GENERIC_READ, //ou pour ecrire GENERIC_WRITE
FILE_SHARE_READ, /*la c'est pour le partage du fichier en fait si tu veux que le fichier puisse etre ouvert par une autre application en lecture tu met le FILE_SHARE_READ en ecriture c'est FILE_SHARE_WRITE et si tu ne veut pas qu'on l'ouvre tu met 0*/
NULL,//pour les parametre de securite (on s'en fout)
OPEN_EXISTING, /*ouvre le fichier que s'il existe il y a aussi OPEN_ALWAYS, CREATE_NEW,CREATE_ALWAYS*/
FILE_ATTRIBUTE_NORMAL, /*la c'est les attributs du fichier : caché,lecture seule, system,archive et les modes d'ouverture (yen a plein)*/
NULL); //un modele de fichier on en a pas besoin

Cette fonction retourne le handle de fichier si elle a réussi a l'ouvrir sinon elle renvoye INVALID_HANDLE_VALUE

par exemple pour savoir la taille de autoexec

#include <windows.h>

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
DWORD taille;
HANDLE fichier;

fichier = CreateFile("c:\\autoexec.bat",
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);

if(fichier != INVALID_HANDLE_VALUE)
{
taille = GetFileSize(fichier,NULL);

//la tu fait ce que tu a a faire

CloseHandle(fichier); //on ferme le fichier
}
//......

return 0;
}

Voila j'espere que j'ai été clair

Bonne prog
Maegis