按上次修改日期和文件内的文本查找特定文件

时间:2014-03-21 09:11:16

标签: c# file search directory

我必须找到上次修改日期的文件,并在文件的第3行包含特定的文本模式。

var directory = new DirectoryInfo("D:\\test");
var dispenser = directory.GetFiles("Dispenser*")
                         .OrderByDescending(f => f.LastWriteTime)
                         .First();
dispenser.CopyTo("..\\..\\Dispenser", true);
dispenserCopy = true;

这将返回第一个文件,其文件名以“Dispenser”和上次修改日期开头。如何检查第3行是否有特定文本?如果没有 - 检查下一个'Dispenser *'文件(通过降序修改日期)等等,直到第3行有文本?

谢谢!

1 个答案:

答案 0 :(得分:2)

编辑:经过编辑以尝试匹配我相信您正在努力实现的目标。话虽这么说 - 在你的位置,我会诚实地退后一步,重新思考在固定行号上对XML数据使用字符串操作的方法。

var dispenser =
   directory.GetFiles("Dispenser*")
            .OrderByDescending(f => f.LastWriteTime)
            .Where(f => (File.ReadLines(f.FullName)
                             .Skip(2)
                             .FirstOrDefault()
                               ?? String.Empty).Contains("MY_EXPECTED_LINE"))
            .FirstOrDefault();