/ / Asp. Net-Dateibeobachter abruptes Verhalten - c #, asp.net

Asp. Net-Dateibeobachter abruptes Verhalten - c #, asp.net

Ich habe File Watcher verwendet, um einen Ordner für die Dateierstellung zu überwachen, mein Code ist unten: -

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

----------------------- Ereignis ist unten ----------------------

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

Meine Frage ist, dass ich 3 Dateien zur gleichen Zeit bekomme und nur eine der 3 Dateien in die Datenbank eingefügt wird, was bedeutet, dass der Dateibeobachter das Ereignis nur für 1 Datei ausgelöst hat, obwohl ich 3 Dateien erstellt habe.

Jede Hilfe wird hier geschätzt.

Antworten:

0 für die Antwort № 1

Sie ignorieren FileSystemEventArgs beim Aufrufen von InsertFileToDatabase. Ich vermute, dass es in dieser Methode einen Fehler in der Logik geben könnte.

Ereignisargumente enthalten den vollständigen Pfad der neuen Datei sowie Informationen darüber, welche Art von Änderung aufgetreten ist. Ich schlage vor, dass Sie sich auf dieses Objekt verlassen und nicht auf benutzerdefinierte Logik.

das bedeutet, dass der Dateibeobachter das Ereignis nur für eine Datei ausgelöst hat, obwohl ich 3 Dateien erstellt habe.

Dies ist nur eine indirekte Schlussfolgerung und könnte falsch sein. Ich empfehle Ihnen, Event-Handler zu überwachen und den vollständigen Pfad und Änderungstyp aus Event-Argumenten zu verfolgen, was Sie zu einer Lösung führt.