0

FileSystemWatcher对设置目录中的其他文件工作正常,但对于另一个程序大约每秒更新一次的文件,只有在我单击GUI 上的OnChangeda 时才会引发该事件。button我没有在buttton和之间建立联系FileSystemWatcher

我试图通过实现一个计时器来调用 OnChanged 事件来解决这个问题。

private void timer1_Tick(object sender, EventArgs e)
{
   foreach(Page p in pages)
    {
     p.HandleFileChanged(sender, (FileSystemEventArgs)e);
    }
}

但我不能投到EventArgsFileSystemEventArgs值得一试!)

我的Page班级实现了一个FileSystemWatcher来观看特定文件。

我想调用 HandleFileChaned 方法,它的头是这样的:

public void HandleFileChanged(object source, FileSystemEventArgs e)
4

2 回答 2

1

请问您为什么不添加另一层,例如:

public void HandleFileChanged(object source, FileSystemEventArgs e)
{
    HandleFileChange(<path and file>);
}

public void timer1_Tick(object source, EventArgs e)
{
    HandleFileChange(<path and file>);
}

private void HandleFileChange(string pathAndFile)
{
    // Do what you have to do
}
于 2012-10-25T10:12:26.973 回答
0

为什么不创建自己的 FileSystemEventArgs?

var args = new FileSystemEventArgs(WatcherChangeTypes.All, "MyDir", "MyFile");
p.HandleFileChanged(sender, args);
于 2012-10-25T10:08:15.527 回答