public InventoryItemBase FindItemByPath (string path)
{
string [] components = path.Split (new [] { PATH_DELIMITER }, 2, StringSplitOptions.None);
if (components.Length == 1) {
lock (Items) {
foreach (InventoryItemBase item in Items.Values.Where (item => item.Name == components [0])) {
return item;
}
}
} else {
lock (m_childFolders) {
foreach (
InventoryFolderImpl folder in
m_childFolders.Values.Where (folder => folder.Name == components [0])) {
return folder.FindItemByPath (components [1]);
}
}
}
// We didn't find an item or intermediate folder with the given name
return null;
}