/ Comportamento abrupto observador de arquivo / Asp .net - c #, asp.net

Asp .net observador de arquivos comportamento abrupto - c #, asp.net

Eu usei observador de arquivos para manter o relógio em uma pasta para criação de arquivos, meu código está abaixo: -

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

----------------------- O evento está abaixo ----------------------

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

Minha pergunta é que eu estou recebendo 3 arquivos ao mesmo tempo e apenas 1 dos 3 arquivos é inserido no banco de dados, o que significa que o observador de arquivo disparou o evento apenas para 1 arquivo, embora eu tenha 3 arquivos criados.

Qualquer ajuda é apreciada aqui.

Respostas:

0 para resposta № 1

Você está ignorando FileSystemEventArgs ao chamar InsertFileToDatabase. Eu suspeito que pode haver um bug na lógica dentro desse método.

Os argumentos do evento estão carregando o caminho completo do novo arquivo, bem como as informações sobre o tipo de mudança ocorrido nele. Eu sugiro que você confie nesse objeto, e não na lógica personalizada.

Isso significa que o inspetor de arquivo disparou um evento apenas para um arquivo, mesmo que eu tenha criado 3 arquivos.

Esta é apenas uma conclusão indireta e pode estar errada. Eu sugiro que você faça auditoria no manipulador de eventos e rastreie o caminho completo e altere o tipo de argumentos de evento, e isso o levará a uma solução.