Taille Fichier, SVP !!!

manta7 Messages postés 105 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 13 décembre 2008 - 24 juin 2003 à 18:55
Maegis Messages postés 101 Date d'inscription vendredi 15 février 2002 Statut Membre Dernière intervention 6 août 2007 - 25 juin 2003 à 09:15
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 juin 2003 à 19:35
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...
0
Maegis Messages postés 101 Date d'inscription vendredi 15 février 2002 Statut Membre Dernière intervention 6 août 2007
25 juin 2003 à 09:15
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
0
Rejoignez-nous