如何检测文本文件的实时变化?

Posted

技术标签:

【中文标题】如何检测文本文件的实时变化?【英文标题】:How to detect real-time change of text files? 【发布时间】:2012-11-01 20:54:53 【问题描述】:

我说要编写一个小的 PC 工具来使用 c# 或 java 读取日志文件。日志文件将采用 .txt 格式。一个应用程序正在运行并写入日志,我希望我的工具同时打开日志并在向日志文件写入新行时自动刷新。

我的挑战是,如何检测日志文件的变化,以便我的工具具有实时显示能力?这是一个普遍的问题,但伪代码将不胜感激!

【问题讨论】:

获取一些 gnu 源代码并查看 tail 应用程序,它使用 -f 选项完全符合您的要求。 FileSystemWatcher 类可能会有所帮助。或者您可以设置一个计时器并轮询长度。 您是否考虑过使用 FileWatcher 类,对于初学者来说,这是一个很好的链接。 techrepublic.com/article/… 【参考方案1】:

您可以使用 FileSystemWatcher 类 (MSDN page)。但请注意,如果您在其他进程正在写入文件时尝试打开文件,您可能会被拒绝访问。

【讨论】:

这使我免于做一些非常粗略的事情。谢谢!【参考方案2】:

这里有很多这样的问题,也有答案:

Reading file content changes in .NET

我想你的目标是 FileStream 对象。

【讨论】:

【参考方案3】:

我会轮询文件并检查它的元数据以了解上次更改的日期,或者如果您使用的是 .NET,则可以使用 FileSystemWatcher

【讨论】:

以上是关于如何检测文本文件的实时变化?的主要内容,如果未能解决你的问题,请参考以下文章

JS实时检测文本框内容长度

input输入框内容变化实时监听

检测 UIWebView 文本选择中的文本选择变化

如何在 jQuery 中检测文本输入框中的变化

检测uitextfied中的文本变化?

如何检测文本文件的编码