private void MergePathToVFSTree(string fullPath) { var folders = fullPath.Split(new string[] { "\\" }, StringSplitOptions.RemoveEmptyEntries); if (folders.Length == 0) { return; } int index = 1; for (VFSTree <string> nested = VFSTree; index < folders.Length; index++) { var getValuePath = folders[index]; if (AddFile(getValuePath, nested)) { return; } var foundNode = nested.FindNode(getValuePath); if (foundNode == null) { foundNode = nested.AddChild(getValuePath); } nested = foundNode; } }
private bool AddFile(string file, VFSTree <string> node) { var foundFile = CheckIfFile(file); if (foundFile) { node.AddFile(file); return(true); } return(false); }
public void VFSTreeFind_NoChildFound() { var root = new VFSTree <string>("root"); root.AddChild("child000"); root.AddChild("child001"); root.AddChild("child002"); var childNode = root.FindNode("123"); Assert.IsNull(childNode); }
public void VFSTreeFind_FoundChild() { var root = new VFSTree <string>("root"); root.AddChild("child000"); root.AddChild("child001"); root.AddChild("child002"); var childNode = root.FindNode("child001"); childNode.AddChild("child011"); childNode.AddChild("child021"); Assert.AreEqual("child001", childNode.Data); }
public void VFSTreeFind_DeeperChildFound() { var root = new VFSTree <string>("root"); root.AddChild("child000"); root.AddChild("child001"); root.AddChild("child002"); var childNode1 = root.FindNode("child001"); childNode1.AddChild("child011"); childNode1.AddChild("child021"); var childNode21 = root.FindNode("child001").FindNode("child021"); childNode21.AddChild("child121"); childNode21.AddChild("child221"); Assert.AreEqual("child021", childNode21.Data); }
public MergeVFSTree(VFSTree <string> root) { VFSTree = root; }
public static VFSTree <T> AddFile <T>(this VFSTree <T> @this, string file) { @this.AddFile(file); return(@this); }