/ / Asp. Obserwator zachowanie pliku .net - c #, asp.net

Twarde zachowanie obserwatora plików ASP .net - c #, asp.net

Użyłem file watcher, aby obserwować folder do tworzenia plików, mój kod jest poniżej: -

 _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;

----------------------- Wydarzenie jest poniżej ----------------------

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

Moje pytanie brzmi: otrzymuję 3 pliki w tym samym czasie i tylko 1 z 3 plików jest wstawiony do bazy danych, co oznacza, że ​​watcher pliku wywołał zdarzenie tylko dla 1 pliku, mimo że mam 3 pliki utworzone.

Każda pomoc jest doceniana tutaj.

Odpowiedzi:

0 dla odpowiedzi № 1

Ignorujesz FileSystemEventArgs podczas wywoływania funkcji InsertFileToDatabase. Podejrzewam, że w tej metodzie może być błąd w logice.

Argumenty zdarzenia zawierają pełną ścieżkę nowego pliku, a także informację o tym, jakie zmiany zaszły na nim. Proponuję polegać na tym obiekcie, a nie na niestandardowej logice.

oznacza to, że plik watcher wywołał zdarzenie tylko dla jednego pliku, mimo że mam 3 pliki utworzone.

To tylko pośredni wniosek i może być błędne. Proponuję, abyś skontrolował obsługę zdarzeń i śledził pełną ścieżkę oraz typ zmiany z argumentów zdarzeń, co doprowadzi cię do rozwiązania.