代码如下:

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
posted on 2010-11-06 11:03  巅枫  阅读(1011)  评论(0)    收藏  举报