Tengo un programa que se ejecuta como un servicio de Windows; procesa archivos en una carpeta específica. Como se trata de un servicio, supervisa constantemente una carpeta en busca de nuevos archivos que se han agregado. Parte del trabajo del programa es realizar comparaciones de archivos en la carpeta de destino y marcar los archivos que no coinciden. Lo que me gustaría hacer es poder detectar si una operación de copia está en progreso y cuándo se ha completado, de modo que un archivo no se marque de forma prematura si todavía no se ha copiado el archivo correspondiente en la carpeta de destino.C# - Esperando que se complete una operación de copia
Lo que estaba pensando hacer fue utilizar FileSystemWatcher para ver la carpeta de destino y ver si se está produciendo una operación de copia. Si lo hay, pongo el hilo principal de mi programa en modo de suspensión hasta que la operación de copia se haya completado, luego procedo a realizar la operación en la carpeta como siempre. Solo quería obtener una idea de este enfoque y ver si es válido; si alguien más tiene otros enfoques únicos para este problema, sería muy apreciado.
ACTUALIZACIÓN:
Gracias a todos por sus sugerencias
Actualización 2:
Me disculpo por la confusión, cuando el directorio de destino que digo, me refiero a la carpeta de origen que contiene todos los archivos que quiero para procesar. Una parte de la función de mi programa es copiar la estructura de directorios del directorio de origen a un directorio de destino y copiar todos los archivos válidos a ese directorio de destino, preservando la estructura de directorios del directorio fuente original, es decir, un usuario puede copiar carpetas que contienen archivos al directorio de origen. Quiero evitar errores asegurando que si un nuevo conjunto de carpetas que contiene más subcarpetas y archivos se copia en el directorio de origen para su procesamiento, mi programa no comenzará a funcionar en el directorio de destino hasta que el proceso de copia se haya completado.
+1. Esa es una muy buena pregunta. Aún tengo que pensar en un enfoque que no parezca un truco. – David
Esta pregunta es similar y tiene algunas buenas respuestas: http://stackoverflow.com/questions/30074/monitoring-files-how-to-know-when-a-file-is-complete – mfdoran