查看文件是否包含特定字符串,然后读取该行

本文关键字:然后 读取 字符串 文件 是否 包含特 | 更新日期: 2023-09-27 17:59:30

我使用这个foreach循环来搜索目录中的文件,然后读取它们。

    foreach (string file in Directory.EnumerateFiles(location, "*.MAI"))

在这个循环中,我想在文件中搜索包含单词"Sended"的行。有没有办法先找这个词,然后读那行?

查看文件是否包含特定字符串,然后读取该行

试试看:

var location = @"<your location>";
foreach (string file in Directory.EnumerateFiles(location, "*.MAI"))
{
    var findedLines = File.ReadAllLines(file)
                          .Where(l => l.Contains("Sended"));
}

如果使用大文件,则应使用ReadLines方法,因为当使用ReadLines[/strong>时,可以在返回整个集合之前开始枚举字符串集合;使用ReadAllLines时,必须等待返回整个字符串数组,然后才能访问该数组。

msdn的另一个例子:

var files = from file in Directory.EnumerateFiles(location, "*.MAI")
            from line in File.ReadLines(file)
            where line.Contains("Sended")
            select new
            {
                File = file,
                Line = line
            };

完整信息,请查看此处:https://msdn.microsoft.com/library/dd383503.aspx

如果.MAI文件是文本文件,请尝试以下操作:

       foreach (string file in Directory.EnumerateFiles(location, "*.MAI"))
        {
            foreach (string Line in File.ReadAllLines(file))
            {
                if (Line.Contains("Sended"))
                { 
                    //Do your stuff here
                }
            }
        }
相关文章: