首页 Soft PlugIn RAN乱 Dev开发 Info资料 English WAP 留言 登陆 注册
-
Posted by Yippee | 评论(0) | 引用(0) | 阅读1988次
如何监视文件系统更改

如何监视文件系统更改
使用 FileSystemWatcher 组件监视文件系统,并且在文件系统发生更改时进行反应。这使在创建、修改或删除某些文件或目录时,能快速、方便地启动业务处理。例如,假定您和一组同事合作处理存储在服务器的某共享目录中的一个文档。使用 FileSystemWatcher 组件,可以容易地设计应用程序以监视对该共享目录的更改。当检测到更改时,组件可以运行处理,通过电子邮件通知组中的每个成员。
该示例阐释如何使用 FileSystemWatcher,来监视对指定目录中任何文件的所有更改(包括重命名、创建和删除)。应用程序仅将您希望监视的目录作为参数。
请尝试按下文所示运行示例:
> Watcher.exe c:\
现在请打开 c:\ directory,然后尝试创建、修改和删除目录中的文件。注意示例应用程序向控制台窗口输出正确的消息。
使用 FileSystemWatcher 至少包括:
创建组件的新实例并指定要监视的目录:
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path= "c:\Foo";

添加一个或多个事件处理程序:
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);

指定当更改发生时应用程序应该执行的操作:
public void OnChanged(object source, FileSystemEventArgs e) {
  Console.Write("File: { 0 } { 1 }", e.FullPath, e.ChangeType);
}

启用组件:
watcher.EnableRaisingEvents = true;

using System;
using System.IO;
public class Watcher {
    public static void Main(String[] args) {
        if(args.Length < 1) {
            Console.WriteLine("用法:Watcher.exe <directory>");
        } else {
            FileSystemWatcher watcher = new FileSystemWatcher();
            watcher.Path= args[0];
            watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.Attributes | NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.Security | NotifyFilters.Size;
            watcher.Changed += new FileSystemEventHandler(OnChanged);
            watcher.Created += new FileSystemEventHandler(OnChanged);
            watcher.Deleted += new FileSystemEventHandler(OnChanged);
            watcher.Renamed += new RenamedEventHandler(OnRenamed);
            watcher.EnableRaisingEvents = true;
        }
        Console.WriteLine("按 Enter 键退出该示例\r\n");
        Console.ReadLine();
    }
    public static void OnChanged(object source, FileSystemEventArgs e) {
        Console.WriteLine("文件:{ 0 } { 1 }", e.FullPath, e.ChangeType.ToString("G"));
    }
    public static void OnRenamed(Object source, RenamedEventArgs e) {
        Console.WriteLine("文件:{ 0 } 已重命名为 { 1 }", e.OldFullPath, e.FullPath);
    }
}


字体:

Permanant URI永久地址 http://www.shengfang.org/blog/p/FileSystemWatcher.php
Trackback URI引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1116310972

2005年5月17日14:22星期二  [Info资料] 追踪此文的RSS
提示:
此文还没有评论。

称呼:    登陆   注册
   不注册,但记住我的信息
邮件:
(非必须)
评论: [UBB代码帮助]
粗体 斜体 下划线 链接 水平线 引用



验证码: 请输入你看见的数字
关闭UBB      提交时自动将内容复制到剪贴板

公告
Fire and Motion!

统计信息
[Yippee]||[统计]||日志:1790
在线: 28||用户: 2562 [列表]
今日:1543||到访:2671042
Rss:838266||评论:1584

最新日志

最新评论

友情链接

日历

最新引用

搜索

归档

杂项
Get RSS Feed (Version 2.0)
Get Atom Feed (Version 0.3)
编码:  UTF-8