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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top