Question:
How can I determine the last access time of a given file?
Answer:
The following example demonstrates retrieving the last date and
time a given file was accessed. Note: Not all file systems support 
the last access time.
Example:
procedure TForm1.Button1Click(Sender: TObject);
var
 SearchRec : TSearchRec;
 Success : integer;
 DT : TFileTime;
 ST : TSystemTime;
begin
 Success := SysUtils.FindFirst('C:\autoexec.bat',
 faAnyFile,
 SearchRec);
 if (Success = 0) and
 (( SearchRec.FindData.ftLastAccessTime.dwLowDateTime <> 0)
 or ( SearchRec.FindData.ftLastAccessTime.dwHighDateTime <> 0))
 then
 begin
 FileTimeToLocalFileTime(SearchRec.FindData.ftLastAccessTime,DT);
 FileTimeToSystemTime(DT,ST);
 Memo1.Lines.Clear;
 Memo1.Lines.Add('AutoExec.Bat was last accessed at:');
 Memo1.Lines.Add('Year := ' + IntToStr(st.wYear));
 Memo1.Lines.Add('Month := ' + IntToStr(st.wMonth));
 Memo1.Lines.Add('DayOfWeek := ' + IntToStr(st.wDayOfWeek));
 Memo1.Lines.Add('Day := ' + IntToStr(st.wDay));
 Memo1.Lines.Add('Hour := ' + IntToStr(st.wHour));
 Memo1.Lines.Add('Minute := ' + IntToStr(st.wMinute));
 Memo1.Lines.Add('Second := ' + IntToStr(st.wSecond));
 Memo1.Lines.Add('Milliseconds := ' + IntToStr(st.wMilliseconds));
 end;
 SysUtils.FindClose(SearchRec);
end;