【发布时间】:2017-01-24 16:33:32
【问题描述】:
我发现自己陷入了某个问题。目前我正在用 C# 编写一个程序,读取 .txts。这些 .txt 文件不断变化,因为内容正在被添加到其中。
我创建了一个 FileSystemWatcher,它将文件名传递给在我的 txt 中读取的方法。现在我想要介于两者之间的东西,它会记住我在 txt 中读到的最后一个位置,然后只传递新的部分。
下次启动程序时也需要记住它。
我曾考虑将最后一行存储在 xml 或 txt 中,然后让我的方法在该文件中搜索最后一行。
我发现的唯一类似问题是:Read log file from last read position。不过我不是很懂。
有没有什么方法可以更高效或更优雅地做到这一点?
编辑:我已经链接了建议的问题,不,它与我的不相似。我希望将有关我在 .txt 中的信息永久存储,而不仅仅是在运行时。
【问题讨论】:
-
您的程序是否在读取日志文件之间关闭?如果不是,则不需要将值存储到文件中。
-
Dictionary<string, int>似乎是一个合理的选择。您冷使用小写文件路径作为键,最后读取位置作为值。 -
这听起来像是两个独立的问题:1)你正在寻找一种方法来读取文件的一部分,给定一个已知的偏移量(stream.seek 可以做到)2)你想保存一个重新启动之间的任意值。 (有很多方法可以做到这一点。Ini 文件、注册表、app.config,甚至可能是 NTFS 替代数据流)
-
@BenVlodgi 是的,是的!不过我不太明白你的回答。
-
@InBetween 我不记得字典对象要永久存储。
标签: c# input filesystemwatcher