查看文件是否包含特定字符串,然后读取该行
本文关键字:然后 读取 字符串 文件 是否 包含特 | 更新日期: 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
}
}
}