Bonjour,
Je ne trouve pas de moyen facile (1 seule commande ?) de connaître la taille de n'importe quel fichier (en octects serait l'idéal). Je suis sûr d'ête passé à côté d'un truc simple, mais je n'arrive pas à le trouver.![]()
Merci par avance.
rx
Bonjour,
Je ne trouve pas de moyen facile (1 seule commande ?) de connaître la taille de n'importe quel fichier (en octects serait l'idéal). Je suis sûr d'ête passé à côté d'un truc simple, mais je n'arrive pas à le trouver.![]()
Merci par avance.
rx
Merci, mais cel ne me convenait pas, car dans l'Aide de Delphi, il y a ça :Envoyé par Pascal Jankowski
Remarque : FileSize ne peut être utilisée avec un fichier texte
Il y a a ma connaissance 2 moyens faciles :
1. Utiliser un TFileStream sur le fichier et récupérer sa propriété Size,
2. Utiliser un TSearchRec sur le fichier et récupérer également sa propriété Size.
Il existe effectivement de nombreuses façons de procéder. Ces techniques sont glbalement divisées en deux : celles qui nécessitent d'ouvrir le fichier et les autres.
Il peut être génant de devoir ouvrir le fichier car l'appel peut échouer dans de nombreux cas (exécutable en cours d'exécution par exemple).
Voici une solution simple utilisant FindFirstFile :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 function GetFileSize(Filename: string): Int64; var w32FindData : WIN32_FIND_DATA; searchHandle: THandle; begin searchHandle:= Windows.FindFirstFile(PChar(Filename), w32FindData); if searchHandle = INVALID_HANDLE_VALUE then raise Exception.Create(SysErrorMessage(GetLastError)) else begin result:= w32FindData.nFileSizeHigh; result:= result shl (SizeOf(Cardinal) * 8); result:= result + w32FindData.nFileSizeLow; Windows.FindClose(searchHandle); end; end;
Merci, ça fonctionne à merveille !![]()
![]()
![]()
![]()
![]()
C'est ce qui fait la différence entre moi et un mec vachement bon ....
Partager