FileSystemWatcher コンポーネントのトラブルシューティング

更新 : 2007 年 11 月

FileSystemWatcher コンポーネントを使用しているときに、次のような状況が発生する場合があります。

Windows NT 4.0 コンピュータで UNC パス名が受け付けられない

Windows NT 4.0 が動作するコンピュータで FileSystemWatcher コンポーネントを使用していて、別の Windows NT 4.0 コンピュータ上のファイル システム動作を監視するためにパスを設定する場合、監視先のコンピュータを示す UNC ベースのパス値を Path プロパティに指定できません。UNC ベースの値は、Windows 2000 コンピュータでのみ設定できます。

Windows 95 または Windows 98 のディレクトリをウォッチできない

FileSystemWatcher コンポーネントで Windows 95 または Windows 98 コンピュータ上のディレクトリを参照するように設定すると、プロジェクトを実行したときにディレクトリ パスが無効であるというエラーが返されます。FileSystemWatcher を使用する場合、Windows 95 または Windows 98 が動作するコンピュータ上のディレクトリはウォッチできません。

1 つのアクションに対して複数の Created イベントが生成される

特定の状況において、1 つの作成イベントにより、コンポーネントで処理される複数の Created イベントが生成される場合があります。たとえば、FileSystemWatcher コンポーネントを使用してディレクトリ内の新しいファイルの作成を監視し、監視動作をテストするためにメモ帳でファイルを作成すると、1 つのファイルしか作成していないのに 2 つの Created イベントが生成される場合があります。これは、メモ帳が書き込み処理の間に複数のファイル システム アクションを実行するためです。メモ帳は、ファイルの内容を作成してからファイル属性を作成するというバッチ処理でディスクに書き込みます。ほかのアプリケーションも同じように動作する場合があります。FileSystemWatcher はオペレーティング システムの動作を監視するため、アプリケーションが発生させるすべてのイベントが検出されます。

xcc1t119.alert_note(ja-jp,VS.90).gifメモ :

メモ帳は、他にも興味深いイベント生成を行います。たとえば、NotifyFilter を使用して属性の変更だけをウォッチするように指定し、監視対象のディレクトリにメモ帳でファイルを書き込むと、イベントが発生します。これは、メモ帳がこの操作中にファイルの Archived 属性を更新するためです。

ディレクトリで予期しないイベントが生成される

FileSystemWatcher コンポーネントで監視しているディレクトリ内でファイルを変更すると、ファイルの Changed イベントが生成されるだけでなく、ディレクトリ自体についても同様のイベントが生成されます。これは、ディレクトリにはその中の各ファイルに対していくつかの種類の情報が保持されているためです。たとえば、ファイルの名前とサイズ、変更日、属性などです。これらのいずれかの属性が変更されると、変更はディレクトリにも関連付けられます。

参照

処理手順

方法 : FileSystemWatcher コンポーネントのインスタンスを作成する

ファイル通知のサンプル

概念

ファイル システム イベントの監視の概要