Wednesday, March 2, 2011

When was that file last accessed?

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;
Listing #1 : Delphi code. Download fatime (0.53 KB).

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Kang Iwan K-sev | Thank's for your visit To My Site - Ridwan Mulyana | Cibeureum