如何检测文本文件的实时变化?
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
类
【讨论】:
以上是关于如何检测文本文件的实时变化?的主要内容,如果未能解决你的问题,请参考以下文章