指定一些需要监控的文件(不限类型),记录其最后修改时间,当文件被修改时(文件的修改时间发生变化),程序自动进行相应的处理.现在难点是如何得知某文件的修改时间发生变化?实时监控!

解决方案 »

  1.   

    可以利用API函数
    FindFirstChangeNotification
    FindNextChangeNotification 
    或者
    ReadDirectoryChangeW来实现
      

  2.   

    可对目录进行监控,然后重读文件的信息,以下是对e:\temp目录监控的程序
    procedure TForm1.Button1Click(Sender: TObject);
     var
      stat:DWORD;
      hd:THANDLE;
    begin
      hd:=FindFirstChangeNotification('e:\temp',false,FILE_NOTIFY_CHANGE_FILE_NAME);
      if hd=INVALID_HANDLE_VALUE then
      begin
        ShowMessage( Syserrormessage(getlasterror()));
        Exit;
      end;
      while true do
        begin
        stat:=WaitForSingleObject(hd,$ffffffff);
        if stat =0 then
        begin
          ShowMessage('有文件改变');
             FindCloseChangeNotification(hd); //关闭句柄
          exit;
        end;
      end;end;
      

  3.   

    Delphi有一个控件的,看一下代码就明白了。