/// <summary> /// Adds a VersionData to the tree in its specified path /// </summary> /// <param name="path"></param> /// <param name="vdata"></param> public void AddVersionData(string path, VersionData vdata) { string[] directoryPath = VersionDataPath.SplitDirectories(path); DataNode node = GetParentNode(directoryPath); string filename = directoryPath[directoryPath.Length - 1]; if (node.children.Contains(filename)) { node.children[filename].data = vdata; } else { node.children.Add(new DataNode(vdata)); } }
public void RenameVersionData(string oldPath, string newPath) { string[] oldDirPath = VersionDataPath.SplitDirectories(oldPath); string[] newDirPath = VersionDataPath.SplitDirectories(newPath); DataNode parentNode = GetParentNode(oldDirPath); string oldfilename = oldDirPath[oldDirPath.Length - 1]; string newfilename = newDirPath[newDirPath.Length - 1]; if (!parentNode.children.Contains(oldfilename)) { throw new ArgumentException(oldPath + " does not exist"); } DataNode node = parentNode.children[oldfilename]; node.filename = newfilename; parentNode.children.Remove(node); parentNode = GetParentNode(newDirPath); parentNode.children.Add(node); }