/ / 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 файла по едно и също време и само 1 от 3 файла се вмъква в базата данни, което означава, че файловият наблюдател е задействал събитие само за 1 файл, въпреки че имам създадени 3 файла.

Всяка помощ е оценена тук.

Отговори:

0 за отговор № 1

Вие пренебрегвате FileSystemEventArgs при извикване на InsertFileToDatabase. Подозирам, че в този метод може да има грешка в логиката.

Арбитрите за събития носят пълния път на новото досие, както и информация за каква промяна е настъпила върху него. Предлагам ви да разчитате на този обект, а не на обичайната логика.

това означава, че файловият наблюдател е задействал събитие само за 1 файл, въпреки че имам създадени три файла.

Това е само непряко заключение и може да е погрешно. Предлагам ви да проверявате инструмента за обработка на събития и да проследявате пълния път и типа на промените от аргументите за събития и това ще ви доведе до решение.