在我的情况下实现Filewatching的最佳方法是什么?

时间:2010-09-17 14:39:44

标签: c#

所以,这大致是我的C#程序看起来

Main()  
 // call to method that reads XML file and loads it into a list of structure  
 // call to method that works on the structure, manpulates data etc.  
 // call to method that starts filewatching  

Filwatching_method()  
 // if any change is detected, calls method OnChange

OnChange()  
 // Action on change

如果调用OnChange方法,即检测到更改,我想重复整个过程。我应该从Main()拨打OnChange,还是有其他更好的方式?

3 个答案:

答案 0 :(得分:2)

您可以查看FileSystemWatcher类,它允许您监视并通知文件系统上发生的事件,例如正在更改的文件。

答案 1 :(得分:1)

就个人而言,这就是我的想法。

  1. 是的,您应该使用Main方法拨打OnChange if ,这实际上就是您要做的事情(即,只需运行Main再次)。
  2. 但是为了防止不受控制的递归,您应确保从 Main内的执行的文件操作本身不会触发OnChange。这可以通过设置标记或临时删除Changed处理程序并在完成后将其添加回来。

答案 2 :(得分:0)

创建一个FileSystemWatcher对象,抛出几个事件,您可以以不同方式处理每个事件。