/ / Asp. Net súbor watcher náhle správanie - c #, asp.net

Asp. Net súbor sledovať náhle správanie - c #, asp.net

Použil som sledovač súborov na sledovanie priečinka na vytváranie súborov, môj kód je nižšie: -

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

----------------------- Udalosť je nižšia ----------------------

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

Moja otázka je, že dostávam 3 súbory súčasne a iba jeden z 3 súborov je vložený do databázy, čo znamená, že sledovač súborov vypálil udalosť len pre 1file, aj keď mám 3 vytvorené súbory.

Akákoľvek pomoc je vítaná.

odpovede:

0 pre odpoveď č. 1

Ignorujete FileSystemEventArgs pri volaní InsertFileToDatabase. Mám podozrenie, že v tejto metóde môže byť logika chyby.

Event args nesú úplnú cestu k novému súboru, ako aj informácie o tom, akú zmenu na ňom došlo. Navrhujem, aby ste sa spoliehali na tento objekt, a nie na vlastnú logiku.

to znamená, že sledovač súborov vypálil udalosť len pre 1 súbor, aj keď mám vytvorených 3 súbory.

Toto je len nepriamy záver a môže to byť nesprávne. Odporúčam vám, aby ste auditoval udalosť a sledoval plnú cestu a zmenil typ z event args, a to vás dovedie k riešeniu.