Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#4

AW: GetFileSizeEx gibt falsche werte bei großen Dateien

  Alt 19. Aug 2010, 11:25
F.FindData.nFileSizeHigh erst auf 64 Bit vergrößern und dann schiften, denn wo sollen die Bits sonst hin?
Result := F.FindData.nFileSizeLow or (Int64(F.FindData.nFileSizeHigh) shl 32); .

PS: solch einfache Bit-Operationen sollten keine Probleme bereten, weswegen der Resourceschutzblock unnötig wäre.

PSS:
Delphi-Quellcode:
function GetFileSizeEx(const AFileName: string): Int64;
var
  F: TSearchRec;
begin
  if FindFirst(AFileName, faAnyFile, F) = 0 then
  begin
    Int64Rec(Result).Lo := F.FindData.nFileSizeLow;
    Int64Rec(Result).Hi := F.FindData.nFileSizeHigh;
    SysUtils.FindClose(F);
  end
  else
    Result := -1;
end;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat