随笔 - 224  文章 - 41  trackbacks - 0
<2010年5月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

享受编程

常用链接

留言簿(11)

随笔分类(159)

随笔档案(224)

文章分类(2)

文章档案(4)

经典c++博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜

原文地址:http://seanli888.blog.51cto.com/345958/112276
.
Net提供了FileSystemWatcher类用于实现文件监控功能。
FileSystemWatcher位于System.IO名称空间下,使用前需using System.IO;
 
FileSystemWatcher可以监控指定目录下的文件删除,创建,重命名等操作。在其构造函数中可以指定需要监控的目录以及需要监控的特定文件类型。
其Created事件在指定目录下创建文件的时候触发。
然而在实际应用中我们常常需要在需要监控的目录中文件创建完成时才作出相应的处理,而这个事件是在有文件创建的时候就触发的,这在处理大文件的时候就容易出错,因为文件还没创建完成,比如复制一个大文件。这时候我们需要对创建的文件进行访问的时候就会出现无法打开文件的异常。
很多网友都是通过循环检查创建的文件大小变化来判断文件是否完成的,这样带来了很大的系统性能损耗,而且不稳定。
其实我们可以使用一个变通的办法,那就是在创建完大文件的时候创建一个同名的特定类型的小文件,前面我们已经说到FileSystemWatcher类是可以指定监控特定类型的文件的,所以我们就可以安全的处理创建的文件了。
FileSystemWatcher fsw = new FileSystemWatcher(@"D:\aaa");
fsw.Created += new FileSystemEventHandler(fsw_Created);


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace FileWatch
{
    
public partial class FileWatch : Form
    
{
        
全局变量

        
窗体事件

        
变化UI

        
监控事件
        
    }

}

posted on 2010-09-06 17:45 漂漂 阅读(3062) 评论(0)  编辑 收藏 引用 所属分类: c#开发

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理