Прочитать файл таким образом, чтобы другие процессы не могли его изменить.

Мне нужно постоянно читать файл журнала для обнаружения определенных закономерностей. Как сделать это, не мешая файловым операциям, которые должна выполнять операция записи журнала?

Процесс записи журнала, помимо записи журналов, периодически перемещает файл в другое место (то есть, когда он достигает определенного размера).

При том, как я читаю файл, приложение записи журнала не может переместить файл. Я безрезультатно играл с различными параметрами FileShare.

Вот упрощенная версия моего кода:

 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);
            }

        }
6
задан John Saunders 10 August 2011 в 19:58
поделиться