【发布时间】:2013-11-25 14:38:43
【问题描述】:
我正在开发一个 winForm 应用程序,其中有一个用于记录目的的文本文件。我想将其大小限制为 3 MB,以便如果超过此限制并写入新数据,则删除文本文件中最旧的数据以为新数据腾出空间。有什么有用的建议吗?
我知道我们有一些日志框架(例如 NLog 或 log4net,都可以从 NuGet 获得),它提供滚动日志文件功能。但我不想使用它,因为我在整个项目中只有一个文本文件。
我想从文件开头开始读取,删除一些数据,然后在末尾追加新数据。
谢谢
【问题讨论】:
-
打开日志文件时,您可以获取其大小并在达到限制时采取措施
-
but i dont want to use it as I have just one text file in the whole project当然大多数情况下每个人都只使用一个日志文件。为什么这会迫使你重新发明轮子? -
是的,我知道。你的意思是FileInfi.Length。但是如何从文件开头删除文本
-
您不能在文本文件中进行随机访问。或者读取整个文件并更改您想要的行,或者在您读取的每一行时将其写入一个新文件(更改您需要的文件) ) 然后替换它,或者使用 xml 的全新方法...
-
据我了解,处理文件中的“现有”文本是一个相对昂贵的过程。简单地附加它不是问题,但如果你想删除前 10 行,然后附加,它会变得有点困难(参见 Roy Dictus 的回答)。为什么不想使用现有的日志框架?
标签: c# winforms logging text-files