想用FileSystemWatch监视一个文件的改变,但当这个文件改变时FileSystemWatch的Changed事件被触发了两次,请问这个问题怎么解决
其中FileSystemWatch的NotifyFilter设置为LastWrite
其中FileSystemWatch的NotifyFilter设置为LastWrite
解决方案 »
- 大神们,麻烦帮我看看这个程序
- 求 正整数 +逗号 +正整数的 正则表达式
- winform中datagridview的button修改问题。
- 二维数组问题
- 问一个很简单的问题,接口方法如果被重载,应该是new还是override?
- 紧急求助,我在线等,先谢谢大哥大姐了(DataGrid的删除问题)
- 求ASP。NETC#的留言版原代码!
- 领导下了任务:要在公司内实现短信系统,这可愁死我了,100分相赠,给一个方案,硬件要用什么?软件要怎么做呢?
- 项目管理方案咨询。
- 请教winform历遍指定分区下的所有指定文件
- DataGrid增加新行问题?
- C#往Excel输出时,前面加一个特殊符号,就能当作纯文本,而不至于把数字文本当成数字显示.请问是哪个特殊符号?
代码如下:
private FileSystemWatcher fileSystemWatcher;public frmMain()
{
InitializeComponent(); fileSystemWatcher = new FileSystemWatcher(); fileSystemWatcher.EnableRaisingEvents = true;
fileSystemWatcher.Filter = "ForeignExchange.txt";
fileSystemWatcher.NotifyFilter = NotifyFilters.LastWrite;
fileSystemWatcher.Path = "E:\\MyFiles";
fileSystemWatcher.SynchronizingObject = this;
fileSystemWatcher.Changed += new FileSystemEventHandler(fileSystemWatcher_Changed);
}private void fileSystemWatcher_Changed(object sender, FileSystemEventArgs e)
{
if (e.ChangeType == WatcherChangeTypes.Changed && File.Exists(e.FullPath)) {
FileInfo fi = new FileInfo(e.FullPath);
if (fi.Name == "ForeignExchange.txt") {
Console.WriteLine(true);
} else {
Console.WriteLine(false);
}
}
}
这个引发的原因我也想到了,但怎么才能只接收一个事件呢
在国外一些论坛里也看到这个问题,但都没找到解决方法
我现在采用的是用了一个bool变量来过滤第二次触发事件,但我怕会出现问题,仍不能定下来