public Directory(string name, Directory parent) { Name = name; Parent = parent; }
private HierarchicalLibraryItem CreateDirectoryBranchNodesRecursively(Directory directory, IDictionary<Directory, HierarchicalLibraryItem> directoryLookup) { HierarchicalLibraryItem result = null; if (directory.Parent == null) { result = new HierarchicalLibraryItem(directory, DirectoryTreeController); DirectoryTree.Add(result); } else if (directoryLookup.ContainsKey(directory.Parent)) { result = new HierarchicalLibraryItem(directory, directoryLookup[directory.Parent]); } else { result = new HierarchicalLibraryItem(directory, CreateDirectoryBranchNodesRecursively(directory.Parent, directoryLookup)); } directoryLookup[directory] = result; return result; }
private Directory GetOrCreateDirectory(Path path) { string[] parts = path.Directories; string fullpath = ""; Directory parentOrResult = null; for (int i = 0; i < parts.Count() - 1; ++i) { fullpath = fullpath + parts[i] + "/"; if (Directories.ContainsKey(fullpath)) { parentOrResult = Directories[fullpath]; } else { Directory dir = new Directory(parts[i], parentOrResult); Directories[fullpath] = dir; parentOrResult = dir; } } return parentOrResult; }