private DirectoryViewModel Lookup(DirectoryInfo path)
        {
            DirectoryViewModel root = LookupRoot(path);

            if (root != null)
            {
                return(root.Lookup(path));
            }
            return(null);
        }
        public DirectoryViewModel Lookup(DirectoryInfo path)
        {
            // if we found the path
            if (DirectoryInfo.FullName == path.FullName)
            {
                return(this);
            }

            DirectoryInfo p = path;

            while (p.Parent.FullName != DirectoryInfo.FullName)
            {
                p = p.Parent;
            }

            DirectoryViewModel child = Directories.FirstOrDefault(x => x.DirectoryInfo.FullName == p.FullName);

            if (child == null)
            {
                return(null);
            }
            return(child.Lookup(path));
        }