Estoy supervisando un archivo de texto que está siendo escrito por un programa de servidor. Cada vez que se cambia el archivo, el contenido se enviará a una ventana de mi programa.Lectura de un archivo utilizado por otro proceso
El problema es que no puedo usar el Streamreader
en el archivo, ya que está siendo used by another process
. Configurar un Filestream
con ReadWrite
no servirá de nada ya que no puedo controlar el proceso que está usando el archivo.
Puedo abrir el archivo en el bloc de notas. Debe ser posible acceder a él aunque el servidor lo esté utilizando.
¿Hay una buena forma de evitar esto?
¿Debo hacer lo siguiente?
- Monitorear el archivo
- Haga una copia temporal de la misma cuando se cambia
- Leer la copia temporal
- eliminar la copia temporal.
Necesito obtener el texto en el archivo cada vez que el servidor lo cambia.
Gracias ... No me di cuenta de que FileShare.Read sería incorrecto en este caso. –
Al usar 'FileShare.ReadWrite | FileShare.Delete' puede obtener acceso a una cantidad aún mayor de archivos. Vale la pena intentarlo cuando 'FileShare.ReadWrite' no es suficiente – Adassko
@Adassko O cuando' FileShare.Read' no es suficiente, como en este caso, y en mi situación particular, donde estaba usando eso en el mismo tipo de código, y tuvo que cambiar a 'FileShare.ReadWrite' para que funcione. – vapcguy