public void AddFileEntry(FileEntry entry) { int[] path_parts = entry._path.UnHashedParts; if (path_parts != null && path_parts.Length > (this.folderLevel + 1)) { string initial_folder = HashIndex.LookupString(path_parts[this.folderLevel]); if (!this._children.ContainsKey(initial_folder)) { FolderItem folder = new FolderItem(entry, this.folderLevel + 1) { Parent = this }; folder.Path = "assets"; for (int i = 0; i <= this.folderLevel; i++) { System.IO.Path.Combine(folder.Path, HashIndex.LookupString(path_parts[i])); } folder.Name = initial_folder; this._children.Add(initial_folder, folder); } else { ((FolderItem)this._children[initial_folder]).AddFileEntry(entry); } } else { entry.Parent = this; this._children.Add(entry.Name, entry); } }