IEnumerable<string> InternalGetDirectories(string path) { foreach (var index in IndexOfAll(path, Path.DirectorySeparatorChar)) { yield return path.Substring(0, index); } yield return path; }