private static Project ImportCPP_Project(string Root) { Project NewProject = new Project(); XmlDocument XMLDoc = new XmlDocument(); XMLDoc.Load(Root); foreach (XmlNode CNode in XMLDoc.DocumentElement.ChildNodes) { if (CNode.Name == "ItemGroup") { foreach (XmlNode CCNode in CNode.ChildNodes) { if (CCNode.Name == "Reference") { NewProject.References.Add(CCNode.Attributes["Include"].InnerText); } if (CCNode.Name == "ProjectReference") { NewProject.References.Add(CCNode.Attributes["Include"].InnerText); } } } } XMLDoc = new XmlDocument(); XMLDoc.Load(Root + ".filters"); foreach (XmlNode CNode in XMLDoc.DocumentElement.ChildNodes) { if (CNode.Name == "ItemGroup") { foreach (XmlNode CCNode in CNode.ChildNodes) { if (CCNode.Name == "ClCompile" || CCNode.Name == "ClInclude" || CCNode.Name == "Text" || CCNode.Name == "Image" || CCNode.Name == "None") { int FType = 0; string Location = ""; foreach (XmlNode CCCNode in CCNode.ChildNodes) { if (CCCNode.Name == "Filter") { Location = CCCNode.InnerText; } } Folder CurrentFolder = NewProject.ProjectFolder; string Path = CCNode.Attributes["Include"].InnerText; string[] BrokenPath = Location.Split('\\'); for (int i = 0; i < BrokenPath.Length; i++) { if (BrokenPath[i] == "") break; bool Exists = false; for (int j = 0; j < CurrentFolder.Subfolders.Count; j++) { if (CurrentFolder.Subfolders[j].Name == BrokenPath[i]) { CurrentFolder = CurrentFolder.Subfolders[j]; Exists = true; break; } } if (Exists) continue; Folder NewFolder = new Folder(); NewFolder.Name = BrokenPath[i]; CurrentFolder.Subfolders.Add(NewFolder); CurrentFolder = NewFolder; } File NewFile = new File(); NewFile.Type = FType; if(NewFile.Name.EndsWith(".png") || NewFile.Name.EndsWith(".jpeg") || NewFile.Name.EndsWith(".jpg") || NewFile.Name.EndsWith(".bmp") || NewFile.Name.EndsWith(".ico")) NewFile.Type = 2; NewFile.Name = System.IO.Path.GetFileName(Path); NewFile.Root = System.IO.Path.GetDirectoryName(Root) + "\\" + Path; CurrentFolder.Files.Add(NewFile); } } } } return NewProject; }
private static Project ImportCS_Project(string Root) { Project NewProject = new Project(); XmlDocument XMLDoc = new XmlDocument(); XMLDoc.Load(Root); foreach(XmlNode CNode in XMLDoc.DocumentElement.ChildNodes) { if(CNode.Name == "ItemGroup") { foreach (XmlNode CCNode in CNode.ChildNodes) { if(CCNode.Name == "Reference") { NewProject.References.Add(CCNode.Attributes["Include"].InnerText); } if (CCNode.Name == "ProjectReference") { foreach (XmlNode CCCNode in CCNode.ChildNodes) { if (CCCNode.Name == "Name") { NewProject.References.Add(CCCNode.InnerText); break; } } } if (CCNode.Name == "Compile") { int FType = 0; foreach (XmlNode CCCNode in CCNode.ChildNodes) { if(CCCNode.Name == "SubType") { if (CCCNode.InnerText == "Form") FType = 7; else if (CCCNode.InnerText == "UserControl") FType = 7; } } Folder CurrentFolder = NewProject.ProjectFolder; string Path = CCNode.Attributes["Include"].InnerText; string[] BrokenPath = Path.Split('\\'); for(int i = 0; i < BrokenPath.Length-1; i++) { bool Exists = false; for(int j = 0; j < CurrentFolder.Subfolders.Count; j++) { if(CurrentFolder.Subfolders[j].Name == BrokenPath[i]) { CurrentFolder = CurrentFolder.Subfolders[j]; Exists = true; break; } } if(Exists) continue; Folder NewFolder = new Folder(); NewFolder.Name = BrokenPath[i]; CurrentFolder.Subfolders.Add(NewFolder); CurrentFolder = NewFolder; } File NewFile = new File(); NewFile.Type = FType; NewFile.Name = BrokenPath[BrokenPath.Length - 1]; NewFile.Root = System.IO.Path.GetDirectoryName(Root) + "\\" + Path; CurrentFolder.Files.Add(NewFile); } if (CCNode.Name == "None") { Folder CurrentFolder = NewProject.ProjectFolder; string Path = CCNode.Attributes["Include"].InnerText; string[] BrokenPath = Path.Split('\\'); for (int i = 0; i < BrokenPath.Length - 1; i++) { bool Exists = false; for (int j = 0; j < CurrentFolder.Subfolders.Count; j++) { if (CurrentFolder.Subfolders[j].Name == BrokenPath[i]) { CurrentFolder = CurrentFolder.Subfolders[j]; Exists = true; break; } } if (Exists) continue; Folder NewFolder = new Folder(); NewFolder.Name = BrokenPath[i]; CurrentFolder.Subfolders.Add(NewFolder); CurrentFolder = NewFolder; } File NewFile = new File(); NewFile.Type = 0; NewFile.Name = BrokenPath[BrokenPath.Length - 1]; if (NewFile.Name.EndsWith(".png") || NewFile.Name.EndsWith(".jpeg") || NewFile.Name.EndsWith(".jpg") || NewFile.Name.EndsWith(".bmp") || NewFile.Name.EndsWith(".ico")) NewFile.Type = 2; NewFile.Root = System.IO.Path.GetDirectoryName(Root) + "\\" + Path; CurrentFolder.Files.Add(NewFile); } } } } return NewProject; }