Выпуск файла StreamReader на секунду - PullRequest
0 голосов
/ 19 апреля 2011

У меня есть StreamReader, который я использую для отслеживания файла на предмет добавления новых строк, он выглядит следующим образом:

while (true)
{
  try
  {
    line = sr.ReadLine();
    if (line == null)
    {
      break;
    }
    if (!string.IsNullOrWhiteSpace(line))
    {
      //Do Stuff
    }
    Thread.Sleep(2);
  }
}

Теперь я хочу время от времени выпускать файл,

Я могу закрыть sr на секунду или две, а затем снова использовать его и использовать снова, но мне было интересно, есть ли правильный способ сделать это ..

Ответы [ 2 ]

2 голосов
/ 19 апреля 2011

Используйте FileSystemWatcher для отслеживания изменений в файле и только затем откройте файл, чтобы проверить наличие новых строк.

Вы можете использовать последнюю позицию seek, чтобы начать новый поиск, поэтому весь файл не нужно перечитывать.

0 голосов
/ 19 апреля 2011

правильный способ сделать это?

Повторное открытие, поиск () до старой позиции и продолжение работы должны быть вашим лучшим вариантом. Если вы хотите, чтобы другие стороны могли продолжить доступ к файлу, просто укажите соответствующие флаги для FileShare , например. FileShare.ReadWrite

Возможно, посмотрите на отображенные в памяти файлы для .NET 4.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...