Fork me on GitHub

Viagens, opiniões e afins

by Andre Fonseca


Lendo um arquivo permitindo que outro processo ou programa o altere

Estava escrevendo um sistema no meu trabalho em C# (csharp) onde se conecta ao log de uma aplicação e escreve as linhas deste num panel (winform). A primeira dificuldade foi como poderia permanecer lendo o arquivo de forma continua. Resolvi com o trecho de codigo abaixo:

....
try
{
      StreamReader reader = new StreamReader (File.OpenRead("<caminho completo do arquivo>"))
      while (true)
      {
           msg = reader.ReadLine();
           ...
     }
}
catch(Exception e)
{
     System.Console.WriteLine(e.Message);
}

Bem isso funcionou bem, a questão que ao fazer isso, por padrão o sistema trava o arquivo não permitindo que outro processo possa escrever no documento. Como queria apenas ler e permitir que a aplicação continuasse a escrever seu log, a solução foi, explicitar o a abertura do arquivo, pelo metodo Open, algumas diretivas. Fica mais ou menos assim:

StreamReader reader = new StreamReader(File.Open("path",FileMode.Open,FileAccess.Read, FileShare.ReadWrite));
...

Isso funcionou legal e me serviu bem pois agora tenho uma ferramenta simples para ficar vendo o log da minha aplicação.

Published by Andre Fonseca, on abril 14th, 2009 at 11:31 pm. Filled under: .NET,Sem categoriaNo Comments

No comments yet.

Leave a Reply