编程自动化
当音乐和传说在深夜中沉寂后,程序的每个字符还在跳动!
C++博客
首页
新随笔
联系
聚合
管理
随笔 - 224 文章 - 41 trackbacks - 0
<
2011年7月
>
日
一
二
三
四
五
六
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
享受编程
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(11)
给我留言
查看公开留言
查看私人留言
随笔分类
(159)
android 开发(22)
boost(2)
c#开发(36)
c++经典文章转载(9)
linux(5)
python(1)
sql(2)
STL(2)
symbian开发(11)
ubuntu 编程(2)
visual studio(9)
WTL(2)
互联网(2)
计算机基本概念(2)
深入vc++(35)
生活(4)
数据库(4)
算法(8)
游戏(1)
随笔档案
(224)
2018年1月 (2)
2014年7月 (1)
2014年5月 (1)
2014年3月 (1)
2014年1月 (1)
2013年12月 (1)
2013年11月 (2)
2013年7月 (3)
2013年6月 (1)
2013年3月 (2)
2013年1月 (3)
2012年12月 (4)
2012年9月 (1)
2012年6月 (2)
2012年5月 (2)
2012年4月 (1)
2012年2月 (2)
2012年1月 (1)
2011年9月 (4)
2011年8月 (6)
2011年7月 (2)
2011年6月 (5)
2011年5月 (9)
2011年3月 (7)
2011年1月 (2)
2010年12月 (3)
2010年10月 (4)
2010年9月 (13)
2010年8月 (18)
2010年7月 (6)
2010年6月 (22)
2010年5月 (8)
2010年4月 (15)
2010年3月 (32)
2010年2月 (4)
2010年1月 (8)
2009年12月 (3)
2009年5月 (3)
2009年3月 (4)
2008年12月 (1)
2008年11月 (14)
文章分类
(2)
转载经典文章(2)
文章档案
(4)
2009年2月 (1)
2008年11月 (3)
经典c++博客
codeguru技术论坛
Nehe
vc技术论坛
谷歌代码搜索
刘未鹏c++的罗浮宫
那谁的技术博客
搜索
最新评论
1. re: 你应该知道的推荐算法--皮尔逊公式介绍和意义
鄂尔泰没看够
--是是是
2. re: 模拟iTunes的登陆,并获取用户的名称[未登录]
暗室逢灯
--123
3. re: 关于ios越狱开发的那些事--Theos开发[未登录]
我的8.3系统,安装成功,启动成功,就是没有弹出alertView
--1
4. re: 关于ios越狱开发的那些事--Theos开发
好强大..13年就如此强大,真是大神啊
--Mekor
5. re: 使用itms-services协议 在线安装 ipa支持ios7.1
评论内容较长,点击标题查看
--网络开发者
阅读排行榜
1. 如何注入代码到exe中使用OD进行操作(24144)
2. C#中跨线程操作控件 --- InvokeRequired 属性 与Invoke方法(21221)
3. 关于ios越狱开发的那些事--Theos开发(20685)
4. OpenResty的安装和在nginx中使用lua直接访问mysql达到数据接口的统一(17481)
5. android中使用adb shell命令kill掉应用程序(17065)
评论排行榜
1. vc/C++中使用网络校正系统时间(6)
2. 在MFC中用控制台显示输出内容(4)
3. 我的网络电台(3)
4. LibMMSeg 简介(转)(2)
5. unicode、utf-8、ansi的故事(2)
C#中使用FileSystemWatcher检测文件变化
原文地址:
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
{
全局变量
#region
全局变量
private
FileSystemWatcher mWatch
=
null
;
#endregion
窗体事件
#region
窗体事件
public
FileWatch()
{
InitializeComponent();
this
.mWatch
=
new
FileSystemWatcher();
this
.mWatch.Changed
+=
new
FileSystemEventHandler(mWatch_Changed);
this
.mWatch.Created
+=
new
FileSystemEventHandler(mWatch_Created);
this
.mWatch.Deleted
+=
new
FileSystemEventHandler(mWatch_Deleted);
}
private
void
btnSelectPath_Click(
object
sender, EventArgs e)
{
FolderBrowserDialog dlg
=
new
FolderBrowserDialog();
if
(dlg.ShowDialog()
==
DialogResult.OK)
{
this
.mWatch.Path
=
dlg.SelectedPath;
this
.mWatch.NotifyFilter
=
NotifyFilters.LastAccess
|
NotifyFilters.DirectoryName
|
NotifyFilters.FileName;
this
.textBoxPath.Text
=
dlg.SelectedPath;
this
.mWatch.EnableRaisingEvents
=
true
;
}
}
#endregion
变化UI
#region
变化UI
private
delegate
void
ShowInfoHandler(String str);
private
void
ShowInfo(
string
strInfo)
{
if
(
this
.InvokeRequired)
{
this
.Invoke(
new
ShowInfoHandler(
this
.ShowInfo),
new
object
[]
{ strInfo }
);
}
else
{
this
.rtbHistory.AppendText(strInfo);
}
}
#endregion
监控事件
#region
监控事件
void
mWatch_Deleted(
object
sender, FileSystemEventArgs e)
{
ShowInfo(e.ChangeType.ToString()
+
"
\t
"
+
e.Name
+
"
\r\n
"
);
}
void
mWatch_Created(
object
sender, FileSystemEventArgs e)
{
ShowInfo(e.ChangeType.ToString()
+
"
\t
"
+
e.Name
+
"
\r\n
"
);
}
void
mWatch_Changed(
object
sender, FileSystemEventArgs e)
{
ShowInfo(e.ChangeType.ToString()
+
"
\t
"
+
e.Name
+
"
\r\n
"
);
}
#endregion
}
}
posted on 2010-09-06 17:45
漂漂
阅读(3067)
评论(0)
编辑
收藏
引用
所属分类:
c#开发
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
c#(csharp .net)下使用json
StreamReader 和文件乱码(转)
c#中分割提取字符串中的英文单词
c#下发送邮件代码
C# 中引用资源文件的几个方法
C# WMI 技术专贴
浅谈USB设备的VID和PID
在.NET中探测U盘的插入/拔出(C#实现)
硬件检测:安装、停用、usb设备检查 和c#实现
线程之间的通讯 UI 通讯 SynchronizationContext 使用
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理