2017-05-31 8 views
-1

Questionは以下のコードで、EnableRaisingEvents = falseを設定します。ファイルシステムウォッチャーの意志のFileSystemWatcherのCreatedイベントを発火から無効にする方法

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

あなたのコードで試してみませんか? –

+0

watcher.Create + = Watcher_Handlerを試しましたが、Createイベントが追加されます。私はイベントを作成することを無効にするために探しています – Aniruddha

答えて

1

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; 

、それがイベントを発生させますが、我々は彼らに

+0

ありがとう@幸運なことに。正確に言うと、私は、他のプログラムがそれを使用できないような方法で、問題の発生したイベントを無効にするか抑制したいと思っています。サードパーティがCreatedイベントがトリガーされるのを待っている場合、私のコード/プログラムはそれを完全に無効にするか、有効にしたり無効にしたりする必要があります。 – Aniruddha

1

を購読していない私が想定しています「作成済み」イベント(変更、削除、名前変更などの他のイベントを通知したいと思っていたかもしれません)を望んでいないことを確認してください)。そうであれば、必要なイベントだけを購読することができます。次のようなものがあります。

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; 
... 

ご希望のものがありますか?

+0

ありがとうございます@Shankar。正確に言うと、私は、他のプログラムがそれを使用できないような方法で、問題の発生したイベントを無効にするか抑制したいと思っています。サードパーティがCreatedイベントがトリガーされるのを待っている場合、私のコード/プログラムはそれを完全に無効にするか、必要に応じて有効または無効にする必要があります。 – Aniruddha

+0

私はそれが可能ではないと思います。他のFileSystemWatcherインスタンス(別のアプリケーションから)は、とにかく作成されたイベントを取得します。 – Mathew

関連する問題