.NET中的文件监视类

136 views 八月 02, 06 by Timothy

最近做的一个项目,涉及到对某个目录的操作的监视,其实在.NET中,使用.NET中的文件监视类,就可以轻松实现对某个目录,以及其子目录的文件监视。比如新建文件、修改文件、删除文件等操作。并且能够以事件的形式通知程序。只要我们在事件委托里面,绑定相应的处理函数即可。.NET的功能果然很强大,只需要几句简单的调用,我们就可以实现这样的监视功能了。

我们以一个例子来实现吧:

static void Main(string[] args)
{
FileSystemWatcher m_Watcher=new FileSystemWatcher();
m_Watcher.Path=@"d:\test";
m_Watcher.IncludeSubdirectories=true;
m_Watcher.Filter="*.*";
m_Watcher.NotifyFilter=NotifyFilters.LastWrite | NotifyFilters.FileName;
m_Watcher.Created+=new FileSystemEventHandler(OnChanged);
m_Watcher.Changed+=new FileSystemEventHandler(OnChanged);
m_Watcher.Deleted+=new FileSystemEventHandler(OnChanged);
m_Watcher.EnableRaisingEvents=true;

Console.WriteLine("Press \'q\' to quit the sample.");
while(Console.Read()!='q');
}

private static void OnChanged(object sender, FileSystemEventArgs e)
{
Console.WriteLine(DateTime.Now.ToString()+" {0} {1}",e.ChangeType,e.FullPath);
}

程序比较简单,先是生成FileSystemWatcher的实例,然后进行相应的设置。我在这里设置要监控的目录
为D:\Test,监控所有文件,也即*.*。然后通过事件,添加响应事件的函数OnChanged到Created、Changed以及Deleted事件中。这样的话,当文件被创建、修改、或者被删除的时候,就能调用我们的OnChanged函数。此函数中的FileSystemEventArgs包含了具体事件的一些信息。比如被修改的文件名、被出发的事件类型等等。通过在回调函数的判断,我们就可以实现响应的操作了。

程序运行效果如下图:

【代码下载】
点击下载此文件

分享到:

声明: 此Blog中的文章和随笔仅代表作者在某一特定时间内的观点和结论,对其完全的正确不做任何担保或假设
本站文章均采用 知识共享署名-相同方式共享3.0 协议进行授权,除非注明,本站文章均为原创,转载请注明转自 Timothy's Space 并应以链接形式标明本文地址!

你可能也对下列文章感兴趣

  • 没有相关文章!

Add your comment

3 Responses to ".NET中的文件监视类"

  1. donggua CHINA 说道:

    不知道是什么东西,先顶下再说!

  2. 丫丫 CHINA 说道:

    东瓜,你也看不懂啊,真的看不懂耶!

  3. 地图 CHINA Mozilla Firefox Windows 说道:

    简单易懂,我正需要,很好用,谢谢


Leave a Reply

 您已输入0

(Ctrl+Enter)