Oldalak

2013. március 13., szerda

File méretének lekérdezés WinAPI használatával

Az alábbi függvénnyel egy állomány méretét lehet lekérdezni. A lekérdezéshez a GetFileAttributesEx WinAPI függvényt használom fel.
A függvény a 2GiB -nál nagyobb méretű állományok méretét is helyesen adja vissza (nincs túlcsordulás), mert a visszatérési érték Int64-ben van.

function GetFileSize(AFileName : String) : Int64;
var
  rData : WIN32_FILE_ATTRIBUTE_DATA;
  iSize : Int64;
begin
  Result := 0;
  if GetFileAttributesEx(PChar(AFileName), GetFileExInfoStandard, @rData) then
    begin
      iSize := rData.nFileSizeHigh;
      iSize := iSize shl 32;
      iSize := iSize + rData.nFileSizeLow;
      Result := iSize;
    end;
end;

Nincsenek megjegyzések:

Megjegyzés küldése