类似windows资源管理器,当有文件被其他程序删除时,资源管理器会自动感知
请高手赐教

解决方案 »

  1.   

    监测目录/文件的变化:
    Root设置要监测的目录;
    WatchSubTree设置是否要监测子目录;
    NotifyFilters设置要监测的变化事件:
    nfFileNameChange   - 文件名改变
    nfDirNameChange    - 目录名改变
    nfAttributeChange  - 属性改变
    nfSizeChange       - 大小改变
    nfWriteChange      - 写入
    nfSecurityChange   - 安全性改变(可能是指NT/2000/XP上的安全性吧)
    只要控件监测到你设置的变化,就会产生OnChange事件。
      

  2.   

    然后在OnChange事件里面写程序
      

  3.   

    给你一个API,是windows基础服务,即使没有shell也能使用。FindFirstChangeNotification这些API可以监视内核对象的变化,也就是可以监视文件夹,文件的改变。
      

  4.   

    Api函数如何使用?能给点提示吗?
    另外能不能得到被改变的文件、文件夹的名称。
    难道要再遍历一边文件列表才能知道是哪里变化了吗?
      

  5.   

    FindFirstChangeNotification的用法是这样的: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;
      

  6.   

    这里有一个Demo
    http://www.fltvu.com/jiaocheng/chenxu1/DELPHI/vcl/file/discmon.zip
      

  7.   

    API:ReadDirectoryChangesW
    see MSDN for more info
      

  8.   

    ReadDirectoryChangesW只是对NT系统的吧
    问题还是没解决啊,
    要支持所有windows系统
      

  9.   

    http://www.sysinternals.com/Utilities/Filemon.html
    scroll down to "How FileMon Works"
      

  10.   

    cuteant(我这张旧船票能否登上你的破船|涛声是否依旧) ( ) 信誉:100  2006-3-18 17:36:51  得分: 0  你那个DEMO里头少一个文件,BrowseDr.pas 。能不能传上来看看。