/// <summary> /// 保存路径到xml /// </summary> /// <param name="path"></param> /// <param name="treeNode">要递归更新路径的树节点</param> /// <param name="isSave"></param> public void saveRealPathToXml(string path, GxTreeNode treeNode, bool isSave = true) { string fullPath = GxEnvManager.getEnv(GxEnvVarType.GXENV_PROJECT_SCENE_DIR) + "\\" + path; setPath(fullPath); _xmlNode.Attributes["Path"].Value = path; //更新子节点路径 if (_xmlNode.HasChildNodes == true) { updateChildNodePath(path, _xmlNode); } //更新树子节点 GxNodeData treeNodeData = (GxNodeData)treeNode.Tag; if (treeNodeData != null) { treeNodeData.setPath(fullPath); if (treeNode.Nodes.Count > 0) { updateChildTreeNodePath(path, treeNode); } } if (isSave == true) { _xmlNode.OwnerDocument.Save(GxEnvManager.getEnv(GxEnvVarType.GXENV_PROJECT_PATH)); } }
/// <summary> /// 更新树的子节点路径 /// </summary> /// <param name="path"></param> /// <param name="parentTreeNode"></param> private void updateChildTreeNodePath(string path, GxTreeNode parentTreeNode) { foreach (GxTreeNode node in parentTreeNode.Nodes) { //更新树节点路径 GxNodeData treeNodeData = (GxNodeData)node.Tag; if (treeNodeData != null) { //取得文件名 string filename = Path.GetFileName(treeNodeData.getPath()); string fullPath = path + "\\" + filename; treeNodeData.setPath(GxEnvManager.getEnv(GxEnvVarType.GXENV_PROJECT_SCENE_DIR) + "\\" + fullPath); if (node.Nodes.Count > 0) { updateChildTreeNodePath(fullPath, node); } } } }