我必须找到上次修改日期的文件,并在文件的第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行有文本?
谢谢!
答案 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();