FileSystemWatcher OnCreated solo dispara para el primer archivo de múltiples archivos copiados

Tengo un FileSystemWatcher que me gustaría OnCreated event un OnCreated event para cada carpeta copiada en el directorio visto . Varias carpetas se copiarán en este directorio visto a la vez, manualmente.

Actualmente solo está activando el event para la primera carpeta copiada.
Entonces, si estoy viendo la carpeta X y selecciono las carpetas A, B, C en el explorador de Windows y las copio en X, OnCreated se OnCreated para A pero no para B o C.

Este es mi código que estoy usando para configurar FileSystemWatcher :

 watcher = new System.IO.FileSystemWatcher(watchPath); watcher.InternalBufferSize = 32768; watcher.IncludeSubdirectories = true; watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.CreationTime | NotifyFilters.LastWrite; watcher.Changed += new FileSystemEventHandler(OnChanged); watcher.Created += new FileSystemEventHandler(OnCreated); watcher.EnableRaisingEvents = true; 

y aquí está mi método OnCeated

 void OnCeated(object sender, FileSystemEventArgs e) { XDocument xmlDoc = BeginImport(e.FullPath); } 

¿Alguna idea de por qué esto solo está activando el evento para la primera carpeta copiada en el directorio visto?

De la documentación :

El sistema operativo Windows notifica a su componente los cambios de archivos en un búfer creado por FileSystemWatcher. Si hay muchos cambios en poco tiempo, el búfer puede desbordarse. Esto hace que el componente pierda la pista de los cambios en el directorio y solo proporcionará una notificación general . Aumentar el tamaño del búfer con la propiedad InternalBufferSize es costoso, ya que proviene de una memoria no paginada que no se puede intercambiar en el disco, así que mantenga el búfer lo suficientemente pequeño como para no perderse ningún evento de cambio de archivo. Para evitar un desbordamiento del búfer, use las propiedades NotifyFilter e IncludeSubdirectories para que pueda filtrar las notificaciones de cambios no deseados.

Parece ser una limitación interna.

Creo que el acto de pegar las tres carpetas a la vez se considera “muchos cambios en poco tiempo”. ¿Se puede usar NotifyFilter y omitir algunos eventos?