让你的应用程序监视文件系统

以下摘自msdn:
使用 FileSystemWatcher 组件可以监视文件系统,并在文件系统中包含的目录和文件发生更改时作出反应。这使您可以在特定的文件和目录被创建、修改或删除时,快速方便地启动业务处理。例如,假设您和一群同事正合作处理某个文档,而该文档存储在服务器上的共享目录下。使用 FileSystemWatcher 组件的实例,可以编写自己的应用程序来监视共享目录内容的更改。当检测到更改时,该组件就可以运行过程,通过电子邮件通知小组的每一个成员。

目录级事件

当应用程序正在监视的根目录或文件中发生更改时,将引发一个或多个事件,将它们存储在缓冲区中并最终传递给组件进行处理。FileSystemWatcher 组件为您提供了对以下事件的访问:

  • Created — 每当创建目录或文件时引发。
  • Deleted — 每当删除目录或文件时引发。
  • Renamed — 每当重命名目录或文件时引发。
  • Changed — 每当更改目录或文件的大小、系统属性、上次写入时间、上次访问时间或安全权限时引发。
    注意   某些经常发生的事(如复制或移动文件)虽然并不直接与事件相对应,但确实会引发事件。在复制文件时,系统在复制文件的目标目录中引发 Created 事件,但在源目录中不引发任何事件。在移动文件时,服务器引发两个事件:先在源目录中引发 Deleted 事件,然后在目标目录中引发 Created 事件。

对目录中的文件所做的每一个更改都会引发一个单独的事件。如果用户对一个文件做了多个更改,则对每一个更改,应用程序都会引发一个单独的事件。例如,当正在监视一个包含五个文件的目录,而当所有这些文件的安全权限突然发生更改时,将会收到五个 Changed 事件。如果用户对这五个文件中的每一个文件都重命名并分配新的安全权限,将会收到 10 个事件通知,因为每个文件都对应一个 Changed 事件和一个 Renamed 事件。

例:

    string FolderPath = "C:\";//FolderPath为要监视的文件与夹名称
FileSystemWatcher Watcher=new FileSystemWatcher(FolderPath);
Watcher.Filter = "*.jpg";//要监视的文件类型
Watcher.Changed+=new FileSystemEventHandler(this.Watcher_FileChange);//文件改变时发生的事件
Watcher.Created+=new FileSystemEventHandler(this.Watcher_FileChange);//文件建立时发生的事件
Watcher.Deleted+=new FileSystemEventHandler(this.Watcher_FileChange);//文件删除时发生的事件
Watcher.Renamed+=new RenamedEventHandler(this.Watcher_ReName);//文件更名时发生的事件
Watcher.EnableRaisingEvents=true;
posted @ 2005-12-14 16:26  小强(占卜师)  阅读(1875)  评论(0编辑  收藏  举报