c #, проблема с чтением потока в файле журнала msbuild, в то время как msbuild logger все еще пишет в него - PullRequest
2 голосов
/ 04 августа 2011

Я пытаюсь использовать StreamReader для чтения файла журнала MSBuild в режиме реального времени с помощью FileSystemWatcher. Всегда запрашивается исключение файлов, когда MSBuild все еще пишет в него. Мой код мог показать содержимое журнала MSBuild только для моего элемента управления RichTextBox, когда MSBuild завершил компиляцию ...

Есть ли альтернатива написанию кода для чтения файла, который сейчас используется другим процессом? Например, notepad.exe читать файл в любое время без беспокойства ...

Ответы [ 2 ]

4 голосов
/ 04 августа 2011

Как вы создаете экземпляр StreamReader?

Если вы просто передаете путь к файлу в конструктор, то это может быть вашей проблемой, так как при этом не будут заданы правильные права доступа к файлу.

Попробуйте это:

StreamReader streamReader = new StreamReader(File.Open("C:\\......", FileMode.Open, FileAccess.Read, FileShare.ReadWrite));
1 голос
/ 04 августа 2011

Вы можете попытаться использовать одну из перегрузок метода Open, чтобы указать, что вы только пытаетесь читать.Как это:

FileStream fs = 
    File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
...