Tengo un problema al trabajar con filesystemwatcher, me está volviendo loco.FileSystemWatcher de .NET se bloquea cuando se produce una excepción, el archivo throws está en uso para archivos futuros
Resulta que estoy viendo para los nuevos archivos de texto en una carpeta, cuando se eleva el Evento creado, básicamente leí usando el siguiente código:
string txtTemp = File.ReadAllText(MyFilePath);
Después de eso, procesar los datos en el txtTemp cadena, básicamente, leí sus líneas & almacenar los datos en un DB, bastante simple, ¿no?
El problema es cuando se produce una excepción en este proceso (digamos conexión db no), no importa si lo cojo porque durante los siguientes archivos próximos la aplicación arrojará una excepción diciendo
"El proceso no puede acceder al archivo 'theNewComingFile.txt' porque es que está siendo utilizado por otro proceso."
¿Cómo es que el nuevo archivo creado podría estar en uso si ni siquiera se ha abierto o leído? Y la aplicación sigue arrojando esta excepción de "proceso no puede acceder al archivo" para todos los archivos nuevos.
La única cosa que podemos hacer es cerrar y volver a abrir la aplicación, esto restablece la aplicación y todo funciona bien otra vez hasta que una excepción de cualquier tipo se eleva de nuevo> (Gosh!)
¿Alguna idea? cualquier solución? ¿Alguna idea? alguna sugerencia alguna ... ¿algo? hehehehe =)
Gracias tíos !!
¿Es posible que esté configurando otro FileSystemWatcher en caso de una excepción, y ambos están compitiendo para manejar el mismo archivo? ¿Podría publicar su código de gestión de eventos, así como el código de configuración FileSystemWatcher? – zmbq
Más código sería útil – jtm001
['File.ReadAllText()'] (http://msdn.microsoft.com/en-us/library/ms143368.aspx): "Abre un archivo de texto, lee todas las líneas del archivo , ** y luego cierra el archivo **. ". No debería suceder siempre que la excepción no se plantee desde allí. ¿No puedes probar un StreamReader para leer el archivo? – CodeCaster