UnityEditor.PackageExportTreeView.PackageExportTreeViewDataSource.EnsureFolderPath C# (CSharp) Method

EnsureFolderPath() private method

private EnsureFolderPath ( string folderPath, PackageExportTreeView.PackageExportTreeViewItem>.Dictionary treeViewFolders, bool initExpandedState ) : TreeViewItem
folderPath string
treeViewFolders PackageExportTreeView.PackageExportTreeViewItem>.Dictionary
initExpandedState bool
return TreeViewItem
            private TreeViewItem EnsureFolderPath(string folderPath, Dictionary<string, PackageExportTreeView.PackageExportTreeViewItem> treeViewFolders, bool initExpandedState)
            {
                if (folderPath == "")
                {
                    return base.m_RootItem;
                }
                TreeViewItem item2 = TreeViewUtility.FindItem(folderPath.GetHashCode(), base.m_RootItem);
                if (item2 != null)
                {
                    return item2;
                }
                char[] separator = new char[] { '/' };
                string[] strArray = folderPath.Split(separator);
                string key = "";
                TreeViewItem rootItem = base.m_RootItem;
                int depth = -1;
                for (int i = 0; i < strArray.Length; i++)
                {
                    string displayName = strArray[i];
                    if (key != "")
                    {
                        key = key + '/';
                    }
                    key = key + displayName;
                    if ((i != 0) || (key != "Assets"))
                    {
                        PackageExportTreeView.PackageExportTreeViewItem item4;
                        depth++;
                        int hashCode = key.GetHashCode();
                        if (treeViewFolders.TryGetValue(key, out item4))
                        {
                            rootItem = item4;
                        }
                        else
                        {
                            PackageExportTreeView.PackageExportTreeViewItem child = new PackageExportTreeView.PackageExportTreeViewItem(null, hashCode, depth, rootItem, displayName);
                            rootItem.AddChild(child);
                            rootItem = child;
                            if (initExpandedState)
                            {
                                base.m_TreeView.state.expandedIDs.Add(hashCode);
                            }
                            treeViewFolders[key] = child;
                        }
                    }
                }
                return rootItem;
            }