C#从文本文件的开头删除而不读取整个文件

时间:2013-05-29 16:04:18

标签: c# text-files filesize

我有一个运行良好的日志记录应用程序,但我想应用维护日志文件大小的能力 - 阻止它变得太大。

理想情况下,我想定期检查文件的大小,如果超过配置的数量(5MB或者其他),请从头开始删除 ,直到达到某个大小,例如4MB。

通过阅读其他问题,我还不清楚是否可以更新/删除文件而无需阅读其全部内容。我理想的情况是:

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

提前感谢任何指示和方向。

1 个答案:

答案 0 :(得分:0)

我会这样做:

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