You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
281 lines
9.5 KiB
281 lines
9.5 KiB
using UnityEngine; |
|
using System.Collections; |
|
using AX.TrackRecord; |
|
using UnityEngine.UI; |
|
using AX.NetworkSystem; |
|
using System.IO; |
|
using System.Collections.Generic; |
|
using AX.MessageSystem; |
|
using System.Xml; |
|
using System; |
|
using HelpXHSxml; |
|
using System.Xml.Serialization; |
|
|
|
public class SavePrepareCourse : MonoBehaviour |
|
{ |
|
/// <summary> |
|
/// 保存备课课件 |
|
/// </summary> |
|
|
|
private InputField CourseName; |
|
private Text TheText; |
|
void Start() |
|
{ |
|
CourseName = this.gameObject.transform.Find("InputField").GetComponent<InputField>(); |
|
TheText = CourseName.transform.Find("Text").GetComponent<Text>(); |
|
CourseName.onValidateInput += ValidCharDetect._OnValidateInput; |
|
} |
|
public void SaveCourseBtn() |
|
{ |
|
|
|
if (TheText.text==null || TheText.text=="") |
|
{ |
|
MessageDispatcher.SendMessage("Operatinghints", (object)"请输灾情名称"); |
|
return; |
|
} |
|
string ThePath = ""; |
|
//string path = ExamInfoHelpClass.CurrentWorkPath + "/" + "Coursewares/"; |
|
//string fileDir = Path.GetDirectoryName(path); |
|
//if (Directory.Exists(fileDir)) |
|
//{ |
|
// string[] files = Directory.GetFiles(fileDir); |
|
// foreach (string file in files) |
|
// { |
|
// string str = Path.GetFileName(file); |
|
// string ext = Path.GetExtension(file); |
|
// if (ext == ".xml") |
|
// { |
|
// ThePath += str + ";";//这种方式最后会多加一个‘;’ |
|
// } |
|
// } |
|
//} |
|
|
|
if (TheText.text.Contains("/") || TheText.text.Contains("\\")) |
|
{ |
|
TheText.text = ""; |
|
MessageDispatcher.SendMessage("Operatinghints", (object)"名字不能包含/或\\"); |
|
return; |
|
} |
|
string path_ = Application.dataPath + @"/ExtendFolder/xml/SaveCoursewares/"; |
|
string fileDir_ = Path.GetDirectoryName(path_); |
|
if (Directory.Exists(fileDir_)) |
|
{ |
|
string[] files = Directory.GetDirectories(path_); |
|
foreach (string file in files) |
|
{ |
|
string str = Path.GetFileName(file); |
|
if (str.Equals(TheText.text.ToString().Trim())) |
|
{ |
|
TheText.text = ""; |
|
MessageDispatcher.SendMessage("Operatinghints", (object)"已经有此名字"); |
|
return; |
|
} |
|
} |
|
} |
|
if (ExamInfoHelpClass.loadSceneMode == ExamInfoHelpClass.LoadSceneMode.PrepareMode) |
|
{ |
|
string path = Application.dataPath + @"/ExtendFolder/xml/SaveCoursewares/"; |
|
string fileDir = Path.GetDirectoryName(path); |
|
if (Directory.Exists(fileDir)) |
|
{ |
|
string[] files = Directory.GetDirectories(path); |
|
foreach (string file in files) |
|
{ |
|
string str = Path.GetFileName(file); |
|
if (str.Equals(TheText.text.ToString().Trim())) |
|
{ |
|
TheText.text = ""; |
|
MessageDispatcher.SendMessage("Operatinghints", (object)"已经有此名字"); |
|
return; |
|
} |
|
} |
|
} |
|
|
|
//创建该文件夹 |
|
string Firstpath = path + TheText.text.ToString().Trim() + "/"; |
|
Directory.CreateDirectory(Firstpath); |
|
|
|
//创建子存放xml的文件夹 |
|
string Secondpath = path + TheText.text.ToString().Trim() + "/" + "savexml/"; |
|
Directory.CreateDirectory(Secondpath); |
|
|
|
//移动namelistxml和xml文件 |
|
string namexml = Application.dataPath + @"/ExtendFolder/xml/NodeNameList.xml"; |
|
string fileDirnamexml = Path.GetDirectoryName(namexml); |
|
|
|
if (File.Exists(namexml)) |
|
{ |
|
File.Move(namexml, Firstpath + "NodeNameList.xml"); |
|
} |
|
if (Directory.Exists(Secondpath)) |
|
{ |
|
string[] files = Directory.GetFiles(ExamInfoHelpClass.CurrentWorkPath); |
|
foreach (string file in files) |
|
{ |
|
string str = Path.GetFileName(file); |
|
File.Move(file, Secondpath + str); |
|
} |
|
} |
|
//图片xml路径 |
|
string picXmlDirPath = Application.dataPath + @"/ExtendFolder/xml/Coursewares/TemporaryPicfile/PicData.xml"; |
|
|
|
if (File.Exists(picXmlDirPath)) |
|
{ |
|
File.Move(picXmlDirPath, Firstpath + "PicData.xml"); |
|
|
|
} |
|
|
|
for (int i = 0; i < NodeSet.Instance.NodeListName.Count; i++) |
|
{ |
|
string name = NodeSet.Instance.NodeListName[i].ToString(); |
|
ThePath += name + ";";//这种方式最后会多加一个‘;’ |
|
} |
|
XML(TheText.text.ToString().Trim()); |
|
} |
|
else |
|
{ |
|
|
|
string Filepath = NodeSet.Cousrsewse.FilePath.Substring(0, NodeSet.Cousrsewse.FilePath.Length - 1); |
|
string thepath = Path.GetFileNameWithoutExtension(Filepath); |
|
changenamexml(thepath, TheText.text.ToString().Trim());//修改XML的名称 |
|
|
|
string path = Application.dataPath + @"/ExtendFolder/xml/SaveCoursewares/"; |
|
File.Move(NodeSet.Cousrsewse.FilePath, path + TheText.text.ToString().Trim());//修改文件夹名称 |
|
} |
|
///创建场景中XHS文件 |
|
|
|
XHSdata(TheText.text.ToString().Trim()); |
|
|
|
this.gameObject.SetActive(false); |
|
MySceneManager.BackToLastScene(); |
|
} |
|
public void XHSdata(string CourseName) |
|
{ |
|
string XHSpath = Application.dataPath + @"/ExtendFolder/xml/SaveCoursewares/" + CourseName + "/" + "XHS.xml"; |
|
|
|
if (File.Exists(XHSpath)) |
|
{ |
|
File.Delete(XHSpath); |
|
} |
|
|
|
RootRecordItem Root = new RootRecordItem(); |
|
List<GameObject> XHSlist = new List<GameObject>(); |
|
XHSlist = CreateXHS.instance.XHSList; |
|
|
|
if (XHSlist.Count == 0) |
|
{ |
|
return; |
|
} |
|
|
|
for (int i = 0; i < XHSlist.Count; i++) |
|
{ |
|
GameObject XHS = XHSlist[i] as GameObject; |
|
BaseDataAttri Attri = new BaseDataAttri(); |
|
Attri.buidType = XHS.GetComponent<CengID>().CengIDBuildType; |
|
Attri.CengID = XHS.GetComponent<CengID>().cengID; |
|
Attri.Name = XHS.name; |
|
Attri.position = XHS.transform.localPosition; |
|
Attri.scale = XHS.transform.localScale; |
|
Attri.rotation = XHS.transform.localEulerAngles; |
|
Root.BaseList.Add(Attri); |
|
} |
|
|
|
//序列化为xml |
|
|
|
XmlSerializer xml = new XmlSerializer(typeof(RootRecordItem)); |
|
StreamWriter writer = new StreamWriter(XHSpath); |
|
xml.Serialize(writer, Root); |
|
writer.Close(); |
|
|
|
} |
|
public void changenamexml(string name,string Name_) |
|
{ |
|
string namexml = Application.dataPath + @"/ExtendFolder/xml/CourseXML.xml"; |
|
if (File.Exists(namexml)) |
|
{ |
|
XmlDocument xmlDoc = new XmlDocument(); |
|
xmlDoc.Load(namexml); |
|
XmlNode root = xmlDoc.SelectSingleNode("CourseNameList"); |
|
XmlNodeList nodeList = root.ChildNodes; |
|
foreach (XmlElement elem in nodeList) |
|
{ |
|
if (elem.Name == "CourseName") |
|
{ |
|
foreach (XmlElement node in elem) |
|
{ |
|
if (node.Name == "Name" && node.InnerText == name) |
|
{ |
|
node.InnerText = Name_; |
|
} |
|
} |
|
} |
|
} |
|
xmlDoc.Save(namexml); |
|
} |
|
} |
|
public void XML(string name) |
|
{ |
|
string namexml = Application.dataPath + @"/ExtendFolder/xml/CourseXML.xml"; |
|
|
|
//if (!File.Exists(namexml)) |
|
//{ |
|
// CreateXML(); |
|
//} |
|
WriteXML(namexml, name); |
|
} |
|
public void WriteXML(string path,string name) |
|
{ |
|
string filepath = path; |
|
if (File.Exists(filepath)) |
|
{ |
|
XmlDocument xmlDoc = new XmlDocument(); |
|
xmlDoc.Load(filepath); |
|
XmlNode root = xmlDoc.SelectSingleNode("CourseNameList"); |
|
XmlNodeList nodeList = root.ChildNodes; |
|
foreach (XmlElement elem in nodeList) |
|
{ |
|
if (elem.Name == "CourseName") |
|
{ |
|
XmlElement jiedian = xmlDoc.CreateElement("Name"); |
|
jiedian.SetAttribute("ID", MySceneManager.GetActiveScene().name); |
|
jiedian.InnerText = name; |
|
elem.AppendChild(jiedian); |
|
root.AppendChild(elem); |
|
|
|
} |
|
} |
|
xmlDoc.AppendChild(root); |
|
xmlDoc.Save(filepath); |
|
} |
|
} |
|
public void CreateXML() |
|
{ |
|
XmlDocument doc = new XmlDocument(); |
|
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "UTF-8", null); |
|
doc.AppendChild(dec); |
|
//根 |
|
XmlElement root = doc.CreateElement("CourseNameList"); |
|
|
|
doc.AppendChild(root); |
|
//创建节点(二级) |
|
XmlElement Name = doc.CreateElement("CourseName"); |
|
root.AppendChild(Name); |
|
|
|
doc.Save(Application.dataPath + @"/ExtendFolder/xml/CourseXML.xml"); |
|
Console.Write(doc.OuterXml); |
|
} |
|
public void CloseBtn() |
|
{ |
|
RecordManager.Instance.IsPause = false; |
|
CourseName.text = ""; |
|
} |
|
|
|
public void GoBackSence() |
|
{ |
|
|
|
} |
|
void OnDestroy() |
|
{ |
|
//NodeSet.Instance.NodeListName.Clear(); |
|
} |
|
}
|
|
|