![]() |
Re: FileStream.Size ist negativ (Datei größer als 2GB)
Zitat:
Und wegen dem Overflow: der sollte eigentlich nicht auftreten, denn wenn man zu einem negativen Wert 2 Mrd. addiert, ist man immer noch unter 2 Mrd. und somit auch noch im Bereich von LongInt. Notfalls kann die Zeile ja so abgeändert werden:
Delphi-Quellcode:
Damit ist man dann auf der sicheren Seite.
else Result:= 2147483647 + LongWord(aSize+2147483648);
MfG Binärbaum |
Re: FileStream.Size ist negativ (Datei größer als 2GB)
Zitat:
|
Re: FileStream.Size ist negativ (Datei größer als 2GB)
Zitat:
Delphi-Quellcode:
Ausgabe:
procedure TForm1.Button1Click(Sender: TObject);
var Stream : TFileStream; begin Stream := TFileStream.Create('e:\tlinux4\base.img', fmOpenRead); ShowMessage(Format('Filesize %s: %d', ['base.img', Stream.Size])); Stream.Free; end;
Code:
Ansonsten hier eine Funktion zur Rückgabe der Größe einer beliebigen Datei:
---------------------------
Project1 --------------------------- Filesize base.img: 4278190080 --------------------------- OK ---------------------------
Delphi-Quellcode:
function DiskFileSize(FileName : string) : int64;
var handle : THandle; findData : TWin32FindData; begin Result := -1; handle := FindFirstFile( PChar( FileName ), findData ); if ( handle <> INVALID_HANDLE_VALUE ) then begin Windows.FindClose( handle ); if ( ( FindData.dwFileAttributes AND FILE_ATTRIBUTE_DIRECTORY ) = 0 ) then begin Result := (findData.nFileSizeHigh * MAXDWORD)+ findData.nFileSizeLow; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz