Omschrijving

Deze code geeft een van de drie datums van een bestand aan: wanneer deze aangemaakt, gewijzigd of voor 't laatst benaderd is.


Voorbeeld

Code:
var
  pFileDate:      TDateTime;

begin
  pFileData := GetFileDate('c:\bootlog.txt', fdCreate);
end;

Code

Code:
type
  TFileDateType = (fdCreate, fdModify, fdAccess);

function GetFileDate(const AFilename: String; AType: TFileDateType): TDateTime;
var
  pFile:      TSearchRec;
  pTime:      TFileTime;
  pLocal:     TFileTime;
  iTime:      Integer;

begin
  Result  := 0;

  if FindFirst(AFilename, faAnyFile, pFile) = 0 then begin
    case AType of
      fdCreate:   pTime := pFile.FindData.ftCreationTime;
      fdModify:   pTime := pFile.FindData.ftLastWriteTime;
      fdAccess:   pTime := pFile.FindData.ftLastAccessTime;
    end;

    // Convert file time to local time
    FileTimeToLocalFileTime(pTime, pLocal);
    FileTimeToDosDateTime(pLocal, LongRec(iTime).Hi, LongRec(iTime).Lo);

    // Convert local time to TDateTime
    Result  := FileDateToDateTime(iTime);

    FindClose(pFile);
  end;
end;