2013-05-29 40 views
0

我有一个很好的日志记录应用程序,但我想应用维护日志文件大小的功能 - 防止它变得太大。C#从文本文件开始删除而不读取整个文件

理想情况下,我要定期检查文件的大小,如果它是在配置的量(5MB或某物)从一开始删除,直到它达到一定规模,比如4MB。

从阅读其他问题我仍然不清楚,如果我可以更新/删除一个文件,而不读取它的全部内容。我的理想情况是:

if(filesize > 5MB) 
{ 
    while(filesize > 4MB) 
     Delete_First_X_Many_Lines(file); 
} 

Thankyou提前为任何指针和方向。

+0

我知道你可以在不读取整个文件的情况下修改文件的某些部分。但从一开始删除?我担心这是不可能的(尽管我可能是错的) – Nolonar

+1

使用现有日志框架(如NLog或log4net)的任何机会?他们已经拥有这个功能,还有很多其他功能。 – Ryan

+0

我认为你将不得不阅读它并回写你的意思。但是,知道回写多少将是一个问题。或者像瑞恩建议的那样......使用第三方库,某人已经完成了繁重的工作。 – DonBoitnott

回答

0

我这样做:

  1. 锁定日志文件(防止写入)。
  2. 将要保留的日志文件的末尾复制到新文件中。
  3. 将新文件复制到旧日志文件的顶部。
  4. 解锁日志文件。