void
__fastcall TForm1::Button1Click(TObject *Sender)
{
String strFileName(Application->ExeName);
WIN32_FIND_DATA wfd;
FILETIME ft;
TSystemTime st;
TDateTime dt;
FindClose(FindFirstFile(strFileName.c_str(), &wfd));
FileTimeToLocalFileTime(&wfd.ftLastWriteTime, &ft);
FileTimeToSystemTime(&ft, &st);
dt = SystemTimeToDateTime(st);
String strLastWriteTime = dt.DateTimeString();
__int64
nFileSize = wfd.nFileSizeHigh * MAXDWORD + wfd.nFileSizeLow;
ShowMessage(String().
sprintf
(
TEXT(
"文件名:%s\r\n最后访问时间:%s\r\n文件大小:%d KB (%I64d bytes)"
),
strFileName.c_str(),
strLastWriteTime.c_str(),
int
(nFileSize / 1024),
nFileSize));
}
FileAge是VCL中的一个函数,内部其实也是调用了FindFirstFile,所以都可以不打开文件的情况下获取文件最后修改时间和最后访问时间。