在.net里有个“filesystemwatcher”的类,Delphi里能不能实现其功能 ( 积分: 100 )

  • 主题发起人 主题发起人 lpn
  • 开始时间 开始时间
L

lpn

Unregistered / Unconfirmed
GUEST, unregistred user!
此类可通过回调函数FileSystemEventArgs返回具体的文件名和变更类型,也就是可以精确定位文件系统中指定目录和文件的变化。Delphi中能不能实现此功能?<br><br>FileSystemWatcher简介如下:<br>使用 FileSystemWatcher 组件可以监视文件系统,并在文件系统中包含的目录和文件发生更改时作出反应。这使您可以在特定的文件和目录被创建、修改或删除时,快速方便地启动业务处理。例如,假设您和一群同事正合作处理某个文档,而该文档存储在服务器上的共享目录下。使用 FileSystemWatcher 组件的实例,可以编写自己的应用程序来监视共享目录内容的更改。当检测到更改时,该组件就可以运行过程,通过电子邮件通知小组的每一个成员。<br><br>注意 &nbsp; FileSystemWatcher 组件用于监视目录中的更改,而不是监视对根目录属性本身的更改。例如,如果正在监视名为 c:/MyProjects 的目录,则该组件将监视该目录内的更改,但不监视对根目录本身的更改。<br>可以配置该组件以监视整个目录及其内容,或者监视给定目录中的某个特定文件或一组文件。每当创建、删除、重命名或以其他方式更改指定根目录中的文件或子目录时,FileSystemWatcher 组件都会引发事件。该组件监视的更改类型包括对文件或子目录的属性、大小、上次写入时间、上次访问时间和安全设置的更改。<br><br>安全说明 &nbsp; 如果一个恶意的程序获得对 FileSystemWatcher 组件正在监视的目录的访问权限,并进行非常多的更改,使此组件无法管理这些更改,则可能导致拒绝服务攻击。请采纳关于大容量系统中文件更改的注意事项中的建议,并正确地使用访问控制列表,以降低遭受拒绝服务攻击的风险。有关更多信息,请参见访问控制。<br>目录级事件<br>当应用程序正在监视的根目录或文件中发生更改时,将引发一个或多个事件,将它们存储在缓冲区中并最终传递给组件进行处理。FileSystemWatcher 组件为您提供了对以下事件的访问: <br><br>Created — 每当创建目录或文件时引发。 <br>Deleted — 每当删除目录或文件时引发。 <br>Renamed — 每当重命名目录或文件时引发。 <br>Changed — 每当更改目录或文件的大小、系统属性、上次写入时间、上次访问时间或安全权限时引发。 <br>注意 &nbsp; 某些经常发生的事(如复制或移动文件)虽然并不直接与事件相对应,但确实会引发事件。在复制文件时,系统在复制文件的目标目录中引发 Created 事件,但在源目录中不引发任何事件。在移动文件时,服务器引发两个事件:先在源目录中引发 Deleted 事件,然后在目标目录中引发 Created 事件。<br>对目录中的文件所做的每一个更改都会引发一个单独的事件。如果用户对一个文件做了多个更改,则对每一个更改,应用程序都会引发一个单独的事件。例如,当正在监视一个包含五个文件的目录,而当所有这些文件的安全权限突然发生更改时,将会收到五个 Changed 事件。如果用户对这五个文件中的每一个文件都重命名并分配新的安全权限,将会收到 10 个事件通知,因为每个文件都对应一个 Changed 事件和一个 Renamed 事件。
 
此类可通过回调函数FileSystemEventArgs返回具体的文件名和变更类型,也就是可以精确定位文件系统中指定目录和文件的变化。Delphi中能不能实现此功能?<br><br>FileSystemWatcher简介如下:<br>使用 FileSystemWatcher 组件可以监视文件系统,并在文件系统中包含的目录和文件发生更改时作出反应。这使您可以在特定的文件和目录被创建、修改或删除时,快速方便地启动业务处理。例如,假设您和一群同事正合作处理某个文档,而该文档存储在服务器上的共享目录下。使用 FileSystemWatcher 组件的实例,可以编写自己的应用程序来监视共享目录内容的更改。当检测到更改时,该组件就可以运行过程,通过电子邮件通知小组的每一个成员。<br><br>注意 &nbsp; FileSystemWatcher 组件用于监视目录中的更改,而不是监视对根目录属性本身的更改。例如,如果正在监视名为 c:/MyProjects 的目录,则该组件将监视该目录内的更改,但不监视对根目录本身的更改。<br>可以配置该组件以监视整个目录及其内容,或者监视给定目录中的某个特定文件或一组文件。每当创建、删除、重命名或以其他方式更改指定根目录中的文件或子目录时,FileSystemWatcher 组件都会引发事件。该组件监视的更改类型包括对文件或子目录的属性、大小、上次写入时间、上次访问时间和安全设置的更改。<br><br>安全说明 &nbsp; 如果一个恶意的程序获得对 FileSystemWatcher 组件正在监视的目录的访问权限,并进行非常多的更改,使此组件无法管理这些更改,则可能导致拒绝服务攻击。请采纳关于大容量系统中文件更改的注意事项中的建议,并正确地使用访问控制列表,以降低遭受拒绝服务攻击的风险。有关更多信息,请参见访问控制。<br>目录级事件<br>当应用程序正在监视的根目录或文件中发生更改时,将引发一个或多个事件,将它们存储在缓冲区中并最终传递给组件进行处理。FileSystemWatcher 组件为您提供了对以下事件的访问: <br><br>Created — 每当创建目录或文件时引发。 <br>Deleted — 每当删除目录或文件时引发。 <br>Renamed — 每当重命名目录或文件时引发。 <br>Changed — 每当更改目录或文件的大小、系统属性、上次写入时间、上次访问时间或安全权限时引发。 <br>注意 &nbsp; 某些经常发生的事(如复制或移动文件)虽然并不直接与事件相对应,但确实会引发事件。在复制文件时,系统在复制文件的目标目录中引发 Created 事件,但在源目录中不引发任何事件。在移动文件时,服务器引发两个事件:先在源目录中引发 Deleted 事件,然后在目标目录中引发 Created 事件。<br>对目录中的文件所做的每一个更改都会引发一个单独的事件。如果用户对一个文件做了多个更改,则对每一个更改,应用程序都会引发一个单独的事件。例如,当正在监视一个包含五个文件的目录,而当所有这些文件的安全权限突然发生更改时,将会收到五个 Changed 事件。如果用户对这五个文件中的每一个文件都重命名并分配新的安全权限,将会收到 10 个事件通知,因为每个文件都对应一个 Changed 事件和一个 Renamed 事件。
 
你可以用微软提供的minifilter ddk开发,微软已经简化了ifkit驱动开发,现在做文件过滤驱动已经很容易了.<br><br>http://www.microsoft.com/taiwan/whdc/driver/filterdrv/default.mspx
 
to:爱元元的哥哥<br>呵呵,久仰大名! 看了一下你介绍的东东,我水平有限,全英文的呢,需要点时间学习。<br>你大哥能不能给点更具体点的建议?如果有相关的例子就更好了。
 
filesystemwatcher对应的是TShellChangeNoti..D7/CBC6/D2005有.在SAMPLES页里边
 
多人接受答案了。
 
后退
顶部