有没有办法检测其内容的文本文件更改?

时间:2014-06-04 08:29:50

标签: c#

我有程序在文本文件中写入错误,当程序捕获错误时,它会将其附加到文本文件中,我想让小程序从文本文件中逐个检测错误,当程序写入错误时

我用这种方式:

string ErrorsFilePath = @"D:\A.txt"; // example path
long oldLength = 0;
long newLength = 0;
while (true)
{
   FileInfo fi = new FileInfo(ErrorsFilePath);
   newLength = fi.Length;
   if (newLength > oldLength)
   {
      GC.Collect();
      string txtAllErrors = File.ReadAllText(ErrorsFilePath);
      int startIndex = (int)oldLength;
      int length = (int)(newLength - oldLength);
      ErrorDetected(txtAllErrors.Substring(startIndex, length));
      oldLength = newLength;
   }
   Thread.Sleep(10);
   GC.Collect();
}

有没有办法检测其内容的文本文件更改?就像文本文件更改时触发事件一样,并给我不同的文本更改。

2 个答案:

答案 0 :(得分:1)

FileSystemWatcher类将为您提供所需的部分内容 - 它会在文件更改时触发事件。看看这里:

http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher(v=vs.110).aspx

答案 1 :(得分:1)

您可以使用FileSystemWatcher实例。

http://msdn.microsoft.com/en-US/en-en/library/system.io.filesystemwatcher.aspx

为什么经常调用GC.Collect?