comportamento FileSystemWatcher incorrecto com Samba
-
13-09-2019 - |
Pergunta
Eu estou usando um .NET FileSystemWatcher em um servidor Windows para assistir a uma pasta em um servidor Windows. Eu também tenho acesso para a mesma pasta de um servidor Linux utilizando Samba. Se eu copiar um arquivo da pasta monitorada para outro lugar, um evento de alteração é gerado para o arquivo de origem. É este o comportamento correto? Parece para alterar a hora 'Último acesso' no arquivo. Como posso ignorar este tipo de mudança?
Solução
O "último acesso" tempo é inconsistente definida por programas do Windows: por exemplo, a exibição do menu propriedades do arquivo de contexto no Windows irá redefinir esse tempo. Como você estado, o Windows Copiar não definir o tempo de "último acesso", mas uma cópia de um arquivo em um servidor Windows usando o Samba não como condutores internos, do do Samba fazendo a cópia.
A sua única solução, eu temo, é ignorar o tempo "último acesso" usando um filtro em sua FileSystemWatcher:
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = "c:\yourpathhere";
watcher.NotifyFilter = NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
ou similar.