public void AddToFolder(FileAndFolderModel child)
 {
     if (Type == Type_Folder)
     {
         Children.Add(child);
     }
 }
Esempio n. 2
0
        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;
                }
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 5
0
        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();
        }