// TODO: // Since we are getting folder data from documents, only non-empty folders // in the project are discovered. It's possible to get complete folder structure // from VS but it requires UI thread to do so. We might want to revisit this later. public static FolderInfo CreateFolderHierarchyForProject(Project project) { var handledFolders = new HashSet <string>(StringComparer.Ordinal); var rootFolderInfo = new FolderInfo("<ROOT>"); foreach (var document in project.Documents) { var folders = document.Folders; if (handledFolders.Add(string.Join(PathUtilities.DirectorySeparatorStr, folders))) { rootFolderInfo.AddFolder(folders); } } return(rootFolderInfo); }