public void AddToFolder(FileAndFolderModel child) { if (Type == Type_Folder) { Children.Add(child); } }
private void LoopInFolfer(FileAndFolderModel Folder, XmlNodeList xmlNodeList) { foreach (XmlNode xn in xmlNodeList) { XmlElement xe = (XmlElement)xn; //MessageBox.Show(xe.GetAttribute("Type").ToString()); FileAndFolderModel ffchild = new FileAndFolderModel( xe.GetAttribute("Type").ToString()); switch (ffchild.Type) { case FileAndFolderModel.Type_File: ffchild.SetFile(xe.GetAttribute("FileName").ToString(), xe.GetAttribute("VersionName").ToString()); Folder.AddToFolder(ffchild); break; case FileAndFolderModel.Type_Folder: XmlNodeList xnl = xe.ChildNodes; LoopInFolfer(ffchild, xnl); ffchild.SetFolder(xe.GetAttribute("FolderName")); Folder.AddToFolder(ffchild); break; } } }
public XmlDecoder(String sourceFile) { MainFolder = new FileAndFolderModel("Folder"); Versions = new List <VersionModel>(); //MessageBox.Show("XmlDecorder!"); doc = new XmlDocument(); doc.Load(sourceFile); //解析目录结构 XmlNode fatherxmlNode = doc.SelectSingleNode("Info"); XmlNode xmlNode1 = fatherxmlNode.ChildNodes.Item(0); XmlNodeList xmlNodeList = xmlNode1.ChildNodes; LoopInFolfer(MainFolder, xmlNodeList); //解析版本列表 XmlNode xmlNode2 = fatherxmlNode.ChildNodes.Item(1); XmlNodeList xmlNodeList2 = xmlNode2.ChildNodes; foreach (XmlNode xn in xmlNodeList2) { XmlElement xe = (XmlElement)xn; VersionModel versionModel = new VersionModel( xe.GetAttribute("FileName").ToString()); XmlNodeList xnl = xe.ChildNodes; foreach (XmlNode x in xnl) { versionModel.AddSingleVersion((XmlElement)x); } Versions.Add(versionModel); } }
public bool TryNewFolder(String newFolderName) { if (Type != Type_Folder) { return(false); } foreach (FileAndFolderModel child in Children) { if (child.Type == Type_Folder && child.FolderName.Equals(newFolderName)) { return(false); } } //可以添加且不冲突 FileAndFolderModel ffm = new FileAndFolderModel("Folder"); ffm.FolderName = newFolderName; Children.Add(ffm); return(true); }
public static void XmlOutput(FileAndFolderModel MainFolder, List <VersionModel> Versions, String FileName) { XmlDocument doc = new XmlDocument(); doc.LoadXml("<Info></Info>"); XmlElement root = doc.DocumentElement; XmlElement mainFolder = doc.CreateElement("MainFolder"); root.AppendChild(mainFolder); MainFolder.AddNodeToFolder(mainFolder, doc); XmlElement allFileVersion = doc.CreateElement("AllFileVersion"); root.AppendChild(allFileVersion); foreach (VersionModel x in Versions) { x.AddNodeTo(allFileVersion, doc); } XmlTextWriter tr = new XmlTextWriter(FileName, Encoding.GetEncoding("utf-8")); doc.WriteContentTo(tr); tr.Close(); }