Comment connaître la taille d'un gros fichier ?

Résolu
cs_btruton Messages postés 4 Date d'inscription mercredi 13 mars 2002 Statut Membre Dernière intervention 27 septembre 2007 - 3 avril 2005 à 21:37
Emandhal Messages postés 194 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 10 octobre 2006 - 4 avril 2005 à 00:21
Salut tout le monde,

Je suis un nouveau membre et je débute sur Delphi.
Je suis entrain de faire un petit programme :-) mais :-/ je bloque sur un petit problème.

Comment faire pour connaître la taille d'un trés gros fichier ? (genre 2,2 Go)
Parce que les entiers "Int" se limite à 2.147.483.647 soit 1,9 Go
Ci-joint mon bout de code que j'ai récupéré :

Resultat := FindFirst(Fichier, FaAnyFile, SearchRec);
if Resultat=0 then
TailleTotalRar := SearchRec.Size
else
showmessage('Erreur avec le fichier '+Fichier_Rar+'.rar');
Label4.Caption := IntToStr(TailleTotalRar);
FindClose(SearchRec);

et la il me marque pour mon fichier de 2,2 Go -2040008548 Octets !!!

Par avance merci de votre aide

btruton

3 réponses

cs_btruton Messages postés 4 Date d'inscription mercredi 13 mars 2002 Statut Membre Dernière intervention 27 septembre 2007
3 avril 2005 à 21:45
Je viens de trouver cela

Je vais essayer de suite

btruton
3
cs_btruton Messages postés 4 Date d'inscription mercredi 13 mars 2002 Statut Membre Dernière intervention 27 septembre 2007
3 avril 2005 à 21:52
Je cherche depuis 2 jours et je trouve la réponse 5 minutes aprés avoir demandé de l'aide

Bon ba merci à vous

btruton

P.S. J'ai pris rdz pour changer mes lunettes. C'est peut-être là le problème
0
Emandhal Messages postés 194 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 10 octobre 2006 3
4 avril 2005 à 00:21
Pour la méthode TSearchRec, il faut faire comme ca :


Function FileLength(Const FileName: String): Int64;
Var
SR: TSearchRec;
Begin
{$WARN SYMBOL_PLATFORM OFF}
If (FindFirst(FileName, $0000003F, SR)=0) Then // faAnyFile
Result := (Int64(SR.FindData.nFileSizeHigh) shl 32) or SR.FindData.nFileSizeLow
else Result := -1;
SysUtils.FindClose(SR);
{$WARN SYMBOL_PLATFORM ON}
End;

Tout problème a sa solution... Mais en général, c'est jamais la bonne...
0
Rejoignez-nous