C# 读取文件的最后n行

C# 读取文件的最后n行,c#,C#,就像这篇文章的标题说的那样,我如何读取文件的最后n行并将它们存储在列表中 请记住: 文件很大(介于5 MB和10 MB之间) 文件可能被另一个线程锁定,也可能不被另一个线程锁定 它被另一个线程访问(当进程完成时,一个新行被添加到文件中) 谢谢。您可以使用以下代码: List<string> Temp = new List<string>(); int SkipLinesNum = 8; var G

就像这篇文章的标题说的那样,我如何读取文件的最后n行并将它们存储在列表中

请记住:

  • 文件很大(介于5 MB和10 MB之间)
  • 文件可能被另一个线程锁定,也可能不被另一个线程锁定
  • 它被另一个线程访问(当进程完成时,一个新行被添加到文件中)

谢谢。

您可以使用以下代码:

            List<string> Temp = new List<string>();
            int SkipLinesNum = 8;
            var GetAllFileToVar = File.ReadLines(@"C:\Sahbak\LinesToList.txt").Skip(SkipLinesNum);
            for (int n = 0; n < GetAllFileToVar.Count(); n++)
            {
                Temp.Add(GetAllFileToVar.ElementAt(0));
            }
List Temp=new List();
int SkipLinesNum=8;
var GetAllFileToVar=File.ReadLines(@“C:\Sahbak\LinesToList.txt”).Skip(SkipLinesNum);
对于(int n=0;n
现在您有了名为“Temp”的字符串列表,其中包含n=8的所有行。 您可以随时编辑您的“n”编号,也可以从用户处获取该编号


这是最有效的方法,您不会将所有文件加载到内存。

欢迎使用stackoverflow。请阅读这不是一个“为我写”的论坛。你写一些代码,我们帮助你修复它,或者你有一个简单的问题,我们回答这个问题似乎是你想写一个“尾巴”程序。尝试用谷歌搜索尾部c#文件,也可以查看内存映射文件。幸运的是,您可能需要考虑线程之间的同步。否则,读者可能会看到不完整的最后一行,通常会在不可预测的位置停止阅读(这可能是个问题,也可能不是问题)。OP表示,文件大小将为5到10MB。将所有这些内容加载到内存中似乎不是很有效…@Udontknow看起来也不是很低效,即使在手机上也是如此;-)。好吧,至少它起作用了,但我希望我的程序不要浪费资源。如果每一个程序都是这样工作的,你的手机使用起来就不好玩了…;-)如果您知道需要跳过多少行,则可以使用此选项。但是文件在不断变化,所以。。。谢谢。您可以随时更改“n”号码。