public VrFile GetFile(string path) { bool error = false; path = CEngine.Instance.FileManager.NormalizePath(path, out error); if (error) { return(null); } var segs = path.Split('/'); VrDirectory dir = this; for (int i = 0; i < segs.Length; i++) { if (i == segs.Length - 1) { return(dir.FindFile(segs[i])); } dir = dir.FindDirectory(segs[i]); if (dir == null) { break; } } return(null); }
public static VrDirectory LoadVrDirectory(string file, bool ignoreAssetsNode) { var xml = EngineNS.IO.XmlHolder.LoadXML(file); var node = xml.RootNode; if (ignoreAssetsNode) { node = node.FindNode("Folder"); var attr = node.FindAttrib("Name"); if (attr != null) { if (attr.Value != "Assets") { return(null); } } } VrDirectory result = new VrDirectory(); LoadVrDirFromNode(result, node); return(result); }
private static void LoadVrDirFromNode(VrDirectory dir, EngineNS.IO.XmlNode node) { var fileNode = node.FindNode("Files"); if (fileNode != null) { var files = fileNode.GetNodes(); foreach (var i in files) { var attr = i.FindAttrib("Name"); if (attr != null) { VrFile curFile = new VrFile(); curFile.Parent = dir; curFile.Name = attr.Value; dir.Files.Add(curFile.Name, curFile); } } } var folders = node.GetNodes(); foreach (var i in folders) { if (i.Name == "Folder") { var attr = i.FindAttrib("Name"); if (attr != null) { VrDirectory subDir = new VrDirectory(); subDir.Parent = dir; subDir.Name = attr.Value; dir.Folders.Add(subDir.Name, subDir); LoadVrDirFromNode(subDir, i); } } } }