internal DirectoryInfoCache LookupDest(string key, int curLen) { var cur = Current; while (true) { string nextHead = _tactics.Lookup(key.Substring(curLen, 1)); var child = cur.FindChildren(nextHead); if (child == null) { if (cur == Current) { return(null); } return(cur); } cur = child; curLen++; if (key.Length == curLen) { return(cur); } } }