4

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

我用线

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

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

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

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

4

2 回答 2

8

好吧,您可以检查两件明显的事情:

如果您跟踪这些,您应该能够检测到文件何时更改 - 至少具有合理的置信度。

此外,您可以使用FileSystemWatcher来监视更改。

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

最后,TextBox对于一个巨大的日志文件来说,a 可能并不是最好的用户界面。如果这是一个结构化日志文件,最好在 UI 中显示该结构 - 例如,每个日志条目在表中一行,可能带有过滤选项等。

于 2013-04-05T18:40:32.680 回答
1

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

于 2013-04-05T18:40:55.040 回答