/ / Asp .netファイルウォッチャーの突然の動作 - C#、asp.net

Aspの.netファイルウォッチャーの突然の動作 - C#、asp.net

私はファイルウォッチャーを使用してファイル作成用のフォルダを監視していますが、私のコードは以下の通りです:

 _watcher = new FileWatcher();
_watcher.Path = ConfigurationManager.AppSettings["LandingArea"];
_watcher.NotifyFilter =
NotifyFilters.CreationTime |
NotifyFilters.LastWrite |
NotifyFilters.FileName |
NotifyFilters.DirectoryName |
NotifyFilters.LastAccess;
_watcher.Filter = "*.xml";
_watcher.EnableRaisingEvents = true;
_watcher.Created += _watcher_Created;

-----------------------イベントが下にあります----------------------

  private void _watcher_Created(object sender, System.IO.FileSystemEventArgs e)
{
DataAccessLayer.InsertFileToDatabase();
}

私の質問は、私は同時に3つのファイルを取得していると私は3つのファイルが作成されているにもかかわらず、ファイルウォッチャーは1fileのイベントを発生させることを意味する3つのファイルのうちの1つだけがデータベースに挿入されます。

どんな援助もここで評価されます。

回答:

回答№1は0

InsertFileToDatabaseを呼び出すときにFileSystemEventArgsを無視しています。私は、このメソッドの中にロジックのバグがあるかもしれないと思う。

イベント引数には、新しいファイルの絶対パスと、それに対してどのような変更が発生したかの情報が格納されます。カスタムロジックではなく、そのオブジェクトに頼ることをお勧めします。

つまり、ファイルウォッチャーは3つのファイルが作成されているにもかかわらず、1つのファイルに対してのみイベントを発生させました。

これは間接的な結論に過ぎず、間違っている可能性があります。イベントハンドラを監査し、フルパスを追跡し、イベント引数からタイプを変更することをお勧めします。これが解決策につながります。