使用 FileSystemWatcher,有没有办法在事件触发后处理事件侦听器的实例?
我的程序基本上会在新创建的文件夹中监听 batch.complete.xml 文件的创建。一旦程序检测到文件已创建,则无需继续在此文件夹中侦听。
我的程序如下所示:
public static void watchxmlfile(batchfolderpath){
var deliverycompletewatcher = new FileSystemWatcher();
deliverycompletewatcher.Path = batchfolderpath;
deliverycompletewatcher.Filter = "*.xml";
deliverycompletewatcher.Created += new FileSystemEventHandler(OnChanged);
deliverycompletewatcher.EnableRaisingEvents = true;
}
private static void OnChanged(object sender, FileSystemEventArgs e)
{
BuildingestionXml(string.Format(@"{0}\{1}",e.FullPath,e.Name));
Console.WriteLine(@"Second: Success sending{0}\{1}", e.FullPath, e.Name);
}
因此,当上述事件被触发时,我不再需要监视“batchfolderpath”中的事件,除非显式调用 watchxmlfile(),它将有一个新路径。
我试图防止上述事件的太多侦听器实例导致内存泄漏。