0

FileSystemWatcher が監視しているディレクトリに新しいファイルが追加されるたびに通知したい次のコードがあります。問題は、監視対象のディレクトリ内にファイルが作成されると、3 つのイベントが発生することです。必要なのは 1 つだけです。発生したイベントはすべて「変更」されます。私が間違っていることはありますか?

FileSystemWatcher _fileWatcher = new FileSystemWatcher();
_fileWatcher.Path = DirToMonitor;
_fileWatcher.NotifyFilter = NotifyFilters.LastWrite;
_fileWatcher.Filter = "*.*";
_fileWatcher.Created += new FileSystemEventHandler(_fileWatcher_Created);
_fileWatcher.Renamed += new RenamedEventHandler(_fileWatcher_Renamed);
_fileWatcher.Changed += new FileSystemEventHandler(_fileWatcher_Changed);
_fileWatcher.EnableRaisingEvents = true;

編集:これは新しいファイルではなくディレクトリレベルで監視されているため、「LastWrite」を使用しました。可能な唯一の変更は、LastWrite、Size、および Attributes のようです。LastWriteが最も賢明なようでした...

4

1 に答える 1

1

完全にはわかりませんが、NotifyFilterにかかっていると思います。これらを調整して他のイベントを含めてみてください。そうすれば、必要なものが得られるはずです。

詳細情報:NotifyFilters列挙型

于 2012-10-19T10:44:00.380 に答える