2016-10-04 7 views
0

FileSystemWatcherを使用して、フォルダの内容が変更されたときにイベントを取得しています。私は、ファイルが追加、削除、または名前変更されたときにイベントを正常に監視することができましたが、私が見ているディレクトリ内に新しいフォルダが作成されたときにイベントがトリガされません。フォルダが追加されたときにFileWatcherがイベントを発生させない

私は、次のイベントで試してみました:それは

watcher.EnableRaisingEvents = true; 
watcher.IncludeSubdirectories = true; 

FileSystemWatcherで行うことが、このことは可能です助けにはならなかったものの、

watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.Size | NotifyFilters.Attributes; 

私もtrueであることを、次の2つのプロパティを設定していますそれとも別のものを使う必要がありますか?

おかげ

+0

あなたは 'NotifyFilters.DirectoryName'を使ってみましたか? – smoksnes

+0

あなたのコード内でどこでも 'watch.Filter'を使用していますか? – Fratyx

答えて

2

あなたはディレクトリあなたnotifyfilterで

NotifyFilters.DirectoryName 

が含まれていません。

watcher.NotifyFilter = NotifyFilters.DirectoryName | 
         NotifyFilters.LastAccess | 
         NotifyFilters.LastWrite | 
         NotifyFilters.FileName | 
         NotifyFilters.Size | 
         NotifyFilters.Attributes; 

私は確認していなかった、あなたはそれを言及しなかったが、Filterセットを持つことがdiectoryをフィルタリングかもしれませんが、次のように

のでセットアップがあなたのnotifyfilterべき

https://msdn.microsoft.com/en-us/library/system.io.notifyfilters(v=vs.110).aspxを参照してください。 docs speaks about ディレクトリ内のどのファイルを監視するかを決定するためのフィルタ文字列を取得または設定します。

+0

私はenum要素を信じています: 'NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.Size |あなたが 'NotifyFilters.DirectoryName'を使用するかどうかにかかわらず、NotifyFilters.Attributes'はフォルダやファイルに対して機能します。 – Ash

+0

@AshwinNairこれは当てはまりません。 'NotifyFilters.DirectoryName'をインクルードする必要があります。 – user3185569

+0

@rene' '* .txt ''のような特定のフィルタがこの設定を破棄することを含む価値があります。それは設定されていないか、何かに設定されている必要があります( '" *。* "') – user3185569

関連する問題