解决方案 »
- 关于窗体与XML的保存于读取
- 如何遍历一个窗体中的所有菜单项(ToolStripMenuItem)并能遍历二级菜单
- 请教关于在VS2005的winform中是不是没有File这个控件?
- 关于DataGirdView,这是一个很普遍的问题,但我未从以前的贴子中找到答案,请教
- 标准三层架构asp.net + SQL2000数据库办公自动化源码(C#开发)分享
- 想问问有项目实践的高人一些问题 ?!!!!!!!1
- 这个问题如何用线程实现?
- 请问中文版和英文版.net 2003可以装在同一台机器上吗?
- C# 获取扫描仪序列号
- 如何知道datagrid的row行数????
- C# CrystalReport 数据源问题
- WCF客户端 与 C++服务端 的数据结构不一致
{
string extend = e.FullPath.Substring(e.FullPath.LastIndexOf('.'));
switch (extend)
{
case ".xls":
break;
case ".doc":
break;
default:
break;
}
}
我在这个事件里加了Timer.Enable=true和Timer.Start()都不能启动,要怎么传参数才可以?
在实例化Timer后,要绑定事件处理timer1.Elapsed
要注意的是,启动时,要等一个interval的时间才会触发,并且可以重入(在一个周期内,事件未处理完,仍然可以进入第二个周期处理)
{
if (this.running == false)
{
string readSql = "select * from [Folder]";
fswCmd = new OleDbCommand(readSql, fswCon);
readRead = fswCmd.ExecuteReader();
while (readRead.Read())
{
this.upList2.Add((string)readRead["change"]);
this.upList2.Add((string)readRead["dataName"]);
this.upList2.Add((string)readRead["fileName"]);
this.upList2.Add((string)readRead["fileType"]);
this.upList2.Add((string)readRead["fullPath"]);
}
t2.Enabled = false;
t2.Stop();
this.Invoke((MethodInvoker)delegate { this.Updatelist(); });
readCmd.Dispose();
if (upList2.Count != 0 && this.backgroundWorker2.IsBusy != true) { this.backgroundWorker2.RunWorkerAsync(); }
}
}老大呀,我这段里面查询字段简直就是乱跳呀,查询字段里面一会出错一会没错一会加第一个一会加第四个
但是要告诉你的是FileSystemWatcher这个类不需要启动定时器去轮循监控文件改动,
只需要设置EnableRaisingEvents = true;启用控件则开始监听了。
当监听到文件改动后会自动调用Created(创建文件)或者Changed(文件修改或目录更改)或Deleted(删除)事件,你要做的是在对应事件里面写你的逻辑就好啦。
一个Timer、一个FileSystemWatcher、一个backgroundWorker
1.FileSystemWatcher监控发生变化写入一个临时Access文件记录哪些变化,同时启动Timer
2.Timer启动后到了设定时间,把这个临时Access读出并写入数组后对数组循环查找这个临时Acceess并删除记录,之后启动backgroundWorker,当Timer再次到设定时间时,如果临时Access没有记录就希望它停止
3.backgroundWorker启动后根据不同路径记录到不同的Access中
过程可能比大侠们繁杂,我这个菜鸟只能用这种笨办法来解决问题,现在是这个Timer我不知道怎么启动,所以只能让它不停地对临时Access文件访问