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).
"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 );
Listing #2 : Delphi code. Download
sample (0.25 KB).
Applicable Keywords : Delphi, Delphi 2.x, Delphi 3.x, Functions, Win32