C# 在不使用log4net或NLog的情况下限制文本文件的大小

C# 在不使用log4net或NLog的情况下限制文本文件的大小,c#,winforms,logging,text-files,C#,Winforms,Logging,Text Files,我正在开发一个winForm应用程序,其中有一个用于日志记录的文本文件。我想将其大小限制为3MB,这样,如果超过此限制并写入新数据,则会删除文本文件中最旧的数据,为新数据腾出空间。有什么有用的建议吗 我知道我们有一些日志框架(例如NLog或log4net,两者都可以从NuGet获得),它提供了滚动日志文件功能。但是我不想使用它,因为我在整个项目中只有一个文本文件 我从文件的开头开始读取,删除一些数据,然后在末尾追加新数据 谢谢滚动日志文件并不意味着删除文本文件中最旧的数据。这意味着在特定时间或特

我正在开发一个winForm应用程序,其中有一个用于日志记录的文本文件。我想将其大小限制为3MB,这样,如果超过此限制并写入新数据,则会删除文本文件中最旧的数据,为新数据腾出空间。有什么有用的建议吗

我知道我们有一些日志框架(例如NLog或log4net,两者都可以从NuGet获得),它提供了滚动日志文件功能。但是我不想使用它,因为我在整个项目中只有一个文本文件

我从文件的开头开始读取,删除一些数据,然后在末尾追加新数据


谢谢

滚动日志文件并不意味着删除文本文件中最旧的数据。这意味着在特定时间或特定文件大小之后,将创建一个新的日志文件


无法从中删除文本文件,它们是连续文件。因此,如果要从文本文件中删除一行,必须读取该文件,从内存中删除该行并再次覆盖该文件,或者创建一个新文件并将每行复制到该文件中,跳过要“删除”的行。

滚动日志文件并不意味着删除文本文件中最旧的数据。这意味着在特定时间或特定文件大小之后,将创建一个新的日志文件


无法从中删除文本文件,它们是连续文件。因此,如果要从文本文件中删除一行,必须读取该文件,从内存中删除该行并再次覆盖该文件,或者创建一个新文件并将每行复制到该文件中,跳过要“删除”的行。

滚动日志文件并不意味着删除文本文件中最旧的数据。这意味着在特定时间或特定文件大小之后,将创建一个新的日志文件


无法从中删除文本文件,它们是连续文件。因此,如果要从文本文件中删除一行,必须读取该文件,从内存中删除该行并再次覆盖该文件,或者创建一个新文件并将每行复制到该文件中,跳过要“删除”的行。

滚动日志文件并不意味着删除文本文件中最旧的数据。这意味着在特定时间或特定文件大小之后,将创建一个新的日志文件


无法从中删除文本文件,它们是连续文件。因此,如果要从文本文件中删除一行,则必须读取该文件,从内存中删除该行并再次覆盖该文件,或者创建一个新文件并将每行复制到该文件,跳过要“删除”的行.

打开日志文件时,您可以获取其大小,并在其是否达到限制时采取措施
,但我不想使用它,因为我在整个项目中只有一个文本文件
当然,大多数情况下每个人都只使用一个日志文件。为什么这迫使你重新发明轮子?是的,我知道。你是指文件长度。但是如何从文件开头删除文本您不能在文本文件中进行随机访问。或者读取整个文件并更改所需的行,或者在读取每一行时将其写入一个新文件(更改所需的行),然后将其替换,或者使用xml等全新方法…操纵“现有”据我所知,文件中的文本是一个相对昂贵的过程。简单地追加并不成问题,但是如果你想删除,比如说,前10行,然后追加,那就有点困难了(见Roy Dictus的答案)。你为什么不想使用现有的日志框架呢?打开日志文件时,你可以得到它的大小,如果它达到或没有达到限制,你可以采取行动
,但我不想使用它,因为我在整个项目中只有一个文本文件
,当然大多数情况下每个人都只使用一个日志文件。为什么这迫使你重新发明轮子?是的,我知道。你是指文件长度。但是如何从文件开头删除文本您不能在文本文件中进行随机访问。或者读取整个文件并更改所需的行,或者在读取每一行时将其写入一个新文件(更改所需的行),然后将其替换,或者使用xml等全新方法…操纵“现有”据我所知,文件中的文本是一个相对昂贵的过程。简单地追加并不成问题,但是如果你想删除,比如说,前10行,然后追加,那就有点困难了(见Roy Dictus的答案)。你为什么不想使用现有的日志框架呢?打开日志文件时,你可以得到它的大小,如果它达到或没有达到限制,你可以采取行动
,但我不想使用它,因为我在整个项目中只有一个文本文件
,当然大多数情况下每个人都只使用一个日志文件。为什么这迫使你重新发明轮子?是的,我知道。你是指文件长度。但是如何从文件开头删除文本您不能在文本文件中进行随机访问。或者读取整个文件并更改所需的行,或者在读取每一行时将其写入一个新文件(更改所需的行),然后将其替换,或者使用xml等全新方法…操纵“现有”据我所知,文件中的文本是一个相对昂贵的过程。简单地追加并不成问题,但是如果你想删除,比如说,前10行,然后追加,那就有点困难了(见Roy Dictus的答案)。你为什么不想使用现有的日志框架呢?打开日志文件时,你可以得到它的大小,如果它达到或没有达到限制,你可以采取行动
,但我不想使用它,因为我在整个项目中只有一个文本文件
,当然大多数情况下每个人都只使用一个日志文件。为什么这迫使你重新发明轮子?是的,我知道。你是指文件长度。但是如何从文件开头删除文本您不能在文本文件中进行随机访问。或者读取整个文件并更改所需的行,或者在读取每一行时将其写入一个新文件(更改所需的行),然后将其替换,或者使用xml等全新方法…操纵“现有”在我看来,文件中的文本是一个相对昂贵的过程