Para la aplicación específica que usted ha descrito, encontrar el hash SHA-1 de cada archivo en el directorio y luego XORing juntos funcionaría bien.
byte[] checksum = new byte[sha1Length];
for each file
for (int index = 0; index < sha1Length; index++)
checksum[index] ^= fileChecksum[index]
editar para agregar: Como se señaló en los comentarios, esto no va a funcionar realmente. Un scenerio específico estaría agregando dos archivos idénticos, que se cancelarían mutuamente en el XOR. Tal vez la creación de una secuencia con todos los nombres de los archivos y marcas de tiempo y hashes de archivos y luego hashing que le daría lo que necesita.
nuevamente la edición: OK, ahora que ha cambiado su pregunta! ¡Así que no importa!
¿Hay alguna razón por la que no acaba de utilizar un FileSystemWatcher? http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx – Will
Debido a que no funciona, por supuesto. Solo en algunos sistemas de archivos compatibles. –
@Will Incluso en sistemas de archivos compatibles, no se garantiza que se active (tamaño de búfer limitado). – vossad01