
代码如下:
procedure TForm1.N18Click(Sender: TObject); //获取文件的创建时间 FileAge; FileDateToDateTime var FileName: string; ti: Integer; dt: TDateTime; begin FileName := 'f:\test\Test.txt'; ti := FileAge(FileName); ShowMessage(IntToStr(ti)); //返回: 1030115371, 需要转换 dt := FileDateToDateTime(ti); //转换 ShowMessage(DateTimeToStr(dt)); //2010-11-6 10:01:22 end;
下面是函数分析:
function FileAge(const FileName: string): Integer;
{$IFDEF MSWINDOWS}
var
Handle: THandle;
FindData: TWin32FindData;
LocalFileTime: TFileTime;
begin
Handle := FindFirstFile(PChar(FileName), FindData);
if Handle <> INVALID_HANDLE_VALUE then
begin
Windows.FindClose(Handle);
if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
begin
FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime);
if FileTimeToDosDateTime(LocalFileTime, LongRec(Result).Hi,
LongRec(Result).Lo) then Exit;
end;
end;
Result := -1;
end;
//可以看出,此函数是由几个API函数封装而来,参数是要操作文件的文件名,
//如果成功则返回由整型表示的创建时间,失败则返回-1
浙公网安备 33010602011771号