protected DateTime GetLastModified(string root)
{
// do a deep scan for the highest last modified datetime
if (!Directory.Exists(root))
{
return DateTime.MinValue;
}
return Directory.GetDirectories(root)
.Select(GetLastModified)
.Union(Directory.GetFiles(root).Select(f => new FileInfo(f).LastWriteTime)).Max();
}