--- ---

Here's an example of how to write a function that'll return a file's last access time (not to be confused with the last modified time).

    function GetFileLastAccessTime(sFileName: string): TDateTime;
    var
      ffd : TWin32FindData;
      dft : DWord;
      lft : TFileTime;
      h   : THandle;
    begin
      // get file information
      h := Windows.FindFirstFile(PChar(sFileName), ffd);
      if INVALID_HANDLE_VALUE <> h then
      begin
        // we're looking for just one file, so close our "find"
        Windows.FindClose(h);

        // convert the FILETIME to local FILETIME
        FileTimeToLocalFileTime(ffd.ftLastAccessTime, lft);

        // convert FILETIME to DOS time
        FileTimeToDosDateTime(lft, LongRec(dft).Hi, LongRec(dft).Lo);

        // finally, convert DOS time to TDateTime for use in Delphi's
        // native date/time functions
        Result := FileDateToDateTime(dft);
      end;
    end;

GetFileLastAccessTime() will return a given file's last access time as a Delphi TDateTime type which you can convert to a string by using the DateTimeToStr() function. For example:

    MessageDlg(
        'c:\config.sys was last accessed on '
        + DateTimeToStr(GetFileLastAccessTime('c:\config.sys')),
        mtInformation, [mbOk], 0
    );