我想读取文件的修改时间,但是如果当这个文件是处在运动状态,老是出错,提示:Invalid argument to date encode
请看我的代码有错吗?iHandle:=FileOpen('C:\a.exe',0);
Try
  FD:=FileDateToDateTime(FileGetDate(iHandle)); //这里出错
Except
End;

解决方案 »

  1.   

    procedure TfrmMain.Button1Click(Sender: TObject);
    var
      iHandle: Integer;
      FD: TDateTime;
    begin
      iHandle := FileOpen('E:\111.txt', fmOpenRead);
      if iHandle <= 0 then Exit;
      Try
        FD := FileDateToDateTime(FileGetDate(iHandle)); //这里出错
        ShowMessage(FormatDateTime('YYYY-MM-DD HH:MM:SS', FD));
      Except
      End;
    end;
    没报错,你的报错估计是因为iHandle根本就小于0,也就是说文件打开失败了!
      

  2.   

    procedure TfrmMain.Button1Click(Sender: TObject);
    var
      iHandle: Integer;
      FD: TDateTime;
    begin
      iHandle := FileOpen(Application.ExeName, fmShareDenyNone);
      if iHandle <= 0 then Exit;
      Try
        FD := FileDateToDateTime(FileGetDate(iHandle)); //这里出错
        ShowMessage(FormatDateTime('YYYY-MM-DD HH:MM:SS', FD));
      Except
      End;
    end;