Necesito leer continuamente un archivo de registro para detectar ciertos patrones. ¿Cómo puede hacerlo sin interferir con las operaciones de archivos que la operación de grabación de registro necesita realizar?Lea un archivo de tal forma que no se impida que otros procesos lo modifiquen
El proceso de grabación de registro, además de escribir registros, mueve periódicamente el archivo a otra ubicación (una alcanza cierto tamaño).
Con la forma en que leo el archivo, la aplicación de grabación de registro no puede mover el archivo. Jugué con varias opciones de FileShare en vano.
aquí está simplificado versión de mi código:
using (FileStream stream = new FileStream(@"C:\temp\in.txt", FileMode.Open, FileAccess.Read, FileShare.Delete))
{
TextReader tr = new StreamReader(stream);
while (true)
{
Console.WriteLine(".. " + tr.ReadLine());
Thread.Sleep(1000);
}
}
"la aplicación de grabación de registro no puede mover el archivo": ¿desea mantener abierto un lector en un archivo que se está moviendo? –
Quiero seguir leyendo mientras el archivo esté disponible. No tengo control sobre cuándo/cómo la aplicación de registro mueve el archivo. Idealmente, obtendría una excepción cuando el archivo se moviera y comencé a leer el nuevo archivo de registro desde ese momento. – akirekadu