C# 如何禁用FileSystemWatcher';s从激发中创建事件

C# 如何禁用FileSystemWatcher';s从激发中创建事件,c#,.net,visual-studio,C#,.net,Visual Studio,问题是根据下面的代码,设置EnableRaisingEvents=false是否会禁用所有或从激发中创建事件?请告知 FileSystemWatcher watcher = new FileSystemWatcher(@"D:\Outgoing", "*.txt"); watcher.EnableRaisingEvents = false; 文件系统监视程序的EnableRaisingEvents属性将帮助您启用或禁用引发事件。如果将此属性设置为false,则不会为所有操作引发任何事件;如果不

问题是根据下面的代码,设置EnableRaisingEvents=false是否会禁用所有或从激发中创建事件?请告知

FileSystemWatcher watcher = new FileSystemWatcher(@"D:\Outgoing", "*.txt");
watcher.EnableRaisingEvents = false;

文件系统监视程序的
EnableRaisingEvents
属性将帮助您启用或禁用引发事件。如果将此属性设置为false,则不会为所有操作引发任何事件;如果不需要创建事件,则表示不需要订阅创建的事件。这意味着观察者对象的定义如下所示:

FileSystemWatcher watcher = new FileSystemWatcher(@"D:\Sujith\Test folder");
watcher.Changed += new FileSystemEventHandler(watcher_changed);
watcher.Renamed += new RenamedEventHandler(watcher_renamed);
watcher.Deleted += new FileSystemEventHandler(watcher_deleted);
watcher.EnableRaisingEvents = true;

这实际上并不是禁用创建的事件引发,它将引发事件,但我们尚未订阅它们。

EnableRaisingEvents
文件系统监视程序的属性将帮助您启用或禁用引发事件。如果将此属性设置为false,则不会为所有操作引发任何事件;如果不需要创建事件,则表示不需要订阅创建的事件。这意味着观察者对象的定义如下所示:

FileSystemWatcher watcher = new FileSystemWatcher(@"D:\Sujith\Test folder");
watcher.Changed += new FileSystemEventHandler(watcher_changed);
watcher.Renamed += new RenamedEventHandler(watcher_renamed);
watcher.Deleted += new FileSystemEventHandler(watcher_deleted);
watcher.EnableRaisingEvents = true;

这实际上并不是禁用已创建的事件引发,它将引发事件,但我们尚未订阅它们

我假设您不希望“已创建”事件(可能,您希望通知其他事件,如更改、删除、重命名…)。如果是这样,您只能订阅所需的事件。大致如下:

FileSystemWatcher watcher = new FileSystemWatcher(@"D:\Outgoing", "*.txt");
watcher.Changed += new FileSystemEventHandler(OnChanged);
//watcher.Created += new FileSystemEventHandler(OnCreated); // not interested
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);

watcher.EnableRaisingEvents = true;
...

希望这就是您想要的。

我假设您不希望“创建”事件(可能,您希望其他事件(如更改、删除、重命名…)得到通知)。如果是这样,您只能订阅所需的事件。大致如下:

FileSystemWatcher watcher = new FileSystemWatcher(@"D:\Outgoing", "*.txt");
watcher.Changed += new FileSystemEventHandler(OnChanged);
//watcher.Created += new FileSystemEventHandler(OnCreated); // not interested
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);

watcher.EnableRaisingEvents = true;
...

希望这就是您想要的。

为什么不尝试一下您的代码呢?我尝试了watcher.Create+=watcher\u处理程序,但这将添加Create事件。我正在寻找禁用创建事件为什么不尝试使用代码?我尝试了watcher.Create+=watcher\u处理程序,但这将添加创建事件。我在找你。谢谢@Shankar。确切地说,我想以一种没有其他程序可以使用的方式有问题地禁用或抑制创建的事件。如果第三方正在等待触发创建的事件,我的代码/程序应该完全禁用它,或者按照我的意愿启用或禁用它。我认为这是不可能的。另一个FileSystemWatcher实例(来自另一个应用程序)无论如何都会拾取创建的事件。谢谢@Shankar。确切地说,我想以一种没有其他程序可以使用的方式有问题地禁用或抑制创建的事件。如果第三方正在等待触发创建的事件,我的代码/程序应该完全禁用它,或者按照我的意愿启用或禁用它。我认为这是不可能的。另一个FileSystemWatcher实例(来自另一个应用程序)仍将拾取创建的事件。谢谢@un lucky。确切地说,我想以一种没有其他程序可以使用的方式有问题地禁用或抑制创建的事件。如果第三方正在等待触发创建的事件,我的代码/程序应该完全禁用它,或者像我所希望的那样启用或禁用它。确切地说,我想以一种没有其他程序可以使用的方式有问题地禁用或抑制创建的事件。如果第三方正在等待触发创建的事件,我的代码/程序应该完全禁用它,或者根据我的意愿启用或禁用它