Столкнулся со следующей проблемой – нужно читать лог-файл сторонней программы из своей из текстового файла, но так как в этот файл производится беспрерывная запись, следующий отрезок кода выдает исключение по проблеме с доступом.
string path = @"C:\logs\log.txt"; var szr = new StreamReader(path); var pa = szr.ReadToEnd();
Код, указанный выше выдает следующее исключение:
System.IO.IOException: "The process cannot access the file 'C:\logs\log.txt' because it is being used by another process."
Решить данную проблему можно создав FileStream, из которого будет считываться нужный нам файл.
using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (var sr = new StreamReader(fs, Encoding.Default)) { var ss = sr.ReadToEnd(); }
В данном случае никакого исключения нет и мы получаем полное содержимое файла с помощью данного обхода.