【发布时间】:2014-11-18 15:38:15
【问题描述】:
我正在使用 FileSystemWatcher 监视 .net 中的文件夹,并且正在触发 Created、Changed 和 Renamed 事件。
在创建和重命名事件中,NotifyFilter是NotifyFilters.FileName
在 Changed 事件中,它设置为 NotifyFilters.LastWrite
现在.. 如果最后一次触发超过 1 秒,我不想触发这些事件。所以每次射击都必须延迟1秒。这也意味着它可以跳过在此延迟之间更改/重命名/创建的文件。只是在延迟时不要做任何事情。
我搜索并尝试了很多,但我无法解决。
【问题讨论】:
-
err.. 请说明您遇到的问题;提供失败代码的代码示例。尽管存在误解,SO 不是一个教程站点,也不是一个您可以请求其他人为您执行功能请求和实现的社区。请花点时间查看委托、事件和事件处理的基础。
-
我不知道如何获取上次触发文件的时间并延迟一秒。我的代码是一个带有 3 个事件的简单文件系统观察器。
-
正如@DWRoelands 在下面指出的那样,如果您的标准/条件是时间,那么您需要两个时间点进行比较。
DateTime.Now()和您自己的变量,如果您设置的条件满足(真),您将分配给DateTime.Now().AddSeconds(+1)。这并不能回答您的全部问题,因为您希望阻止事件触发......这就是 OOP 的用武之地以及您对委托、事件、EventArgs 和 EventHandling 的理解。do stuff应该是你自己的事件,你的类要接受。
标签: c# .net vb.net filesystemwatcher