c#在不读取整个文件的情况下从文本文件的开头删除

本文关键字:文件 文本 开头 删除 情况下 读取 | 更新日期: 2023-09-27 18:16:08

我有一个运行良好的日志应用程序,但是我想应用维护日志文件大小的功能——防止它变得太大。

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

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

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

提前感谢您的指点和指导。

c#在不读取整个文件的情况下从文本文件的开头删除

我会这样做:

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