O System.IO.FileSystemWatcher monitora o sistema de arquivos em busca de alterações, como um arquivo sendo criado ou excluído. Ele pode monitorar diretórios recursivamente e monitorar os compartilhamentos de arquivos em uma rede. Como é uma classe .NET, ela pode ser usada por C #, Visual Basic e até mesmo por Powershell. O que você faz com os eventos de notificação depende de você.
Aqui está um exemplo de Mathias R. Jessen: link
E aqui está uma boa postagem do StackOverflow sobre o uso do FileSystemWatcher para monitorar um compartilhamento de arquivos remoto: