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;
}