我有程序在文本文件中写入错误,当程序捕获错误时,它会将其附加到文本文件中,我想让小程序从文本文件中逐个检测错误,当程序写入错误时
我用这种方式:
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();
}
有没有办法检测其内容的文本文件更改?就像文本文件更改时触发事件一样,并给我不同的文本更改。
答案 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?