FileSystemWatcher OnChanged不会为实时更新的文件引发

时间:2012-10-25 09:43:43

标签: c# .net visual-studio-2010 onchange filesystemwatcher

我的FileSystemWatcher适用于设置目录中的其他文件,但对于其他程序大致每秒更新一次的文件,OnChanged事件仅在我点击button时才会生成在GUI上。我在butttonFileSystemWatcher之间没有建立任何关联。

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

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

但我无法将EventArgs投射到FileSystemEventArgs(值得一试!)

我的Page类实现FileSystemWatcher来观看特定文件。

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

public void HandleFileChanged(object source, FileSystemEventArgs e)

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:0)

为什么不创建自己的FileSystemEventArgs?

var args = new FileSystemEventArgs(WatcherChangeTypes.All, "MyDir", "MyFile");
p.HandleFileChanged(sender, args);