从文本文件中读取并更新

时间:2013-04-05 18:38:17

标签: c# io

我是编程的新手,我遇到了一个问题,我不知道如何处理它。

我使用

    textBox2.Text = System.IO.File.ReadAllText(path);

从文本文件中读取并将内容粘贴到textBox2中。

现在问题是我试图读取的文本文件是一个大的(几兆字节)文本文件。此文本文件包含程序中的日志,新日志始终添加在文件的底部。
现在我想更新textBox2,如果文本文件更新。但是我不确定如何以有效的方式做到这一点。一种方法是再次读取整个文本文件,但由于文本文件太大,这是一个非常缓慢的过程。

我有兴趣找到一种不同的,更快的方法来处理这个问题。我对确切的代码并不感兴趣,我只是希望找出我应该看的方向以及我可以考虑的选项。

2 个答案:

答案 0 :(得分:8)

嗯,你可以检查两件显而易见的事情:

如果您跟踪这些内容,您应该能够检测文件何时发生变化 - 至少在合理程度上有信心。

此外,您可以使用FileSystemWatcher来观察更改。

此外,您可能需要考虑跟踪您所阅读的位置 - 这样您就可以通过寻找文件中的正确位置来阅读新数据。

最后,TextBox可能并不是巨大日志文件的最佳用户界面。如果这是结构化日志文件,那么在UI中表示该结构会很好 - 例如,每个日志条目在表中有一行,可能还有过滤选项等。

答案 1 :(得分:1)

您可以每X秒检查一次。如果文件已更改,则更新,如果没有,则不执行任何操作。您可以保留文件的修改时间,以确定它是否发生了变化。