我的FileSystemWatcher
适用于设置目录中的其他文件,但对于其他程序大致每秒更新一次的文件,OnChanged
事件仅在我点击button
时才会生成在GUI上。我在buttton
和FileSystemWatcher
之间没有建立任何关联。
我正试图通过实现一个调用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)
答案 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);