private void ParseDirectoryNode(DirectoryCNode rNode, Parser psr, bool parseFlag) { if (rNode != null) { List <string> filePathList; CNode dNode; if (parseFlag) { filePathList = rNode.xmlPathList; dNode = new XmlCNode(); } else { filePathList = rNode.jsonPathList; dNode = new JsonCNode(); } ParseFile(dNode, psr, filePathList); if (dNode.ChildrenNode.Count > 0) { rNode.CurrentNodeList.Add(dNode); } foreach (CNode node in rNode.ChildrenNode) { ParseDirectoryNode(node as DirectoryCNode, psr, parseFlag); } } }
private void ParseDirectory(DirectoryCNode rNode, Parser psr, bool parseFlag) { ParseDirectoryNode(rNode, psr, parseFlag); CNode node = psr.Get_FileScheme(); if (node != null && node.ChildrenNode.Count > 0) { FileSchemeList.Add(node); rNode.CurrentNodeList.Add(node); } }
private void GetDirectories(DirectoryInfo root, CNode rNode, int rank) { rank++; foreach (FileInfo fi in root.GetFiles(jsonFilterString)) { (rNode as DirectoryCNode).jsonPathList.Add(fi.FullName); } foreach (FileInfo fi in root.GetFiles(xmlFilterString)) { (rNode as DirectoryCNode).xmlPathList.Add(fi.FullName); } foreach (DirectoryInfo dir in root.GetDirectories()) { CNode subNode = new DirectoryCNode(rank, dir.Name, rNode, dir.FullName); rNode.ChildrenNode.Add(subNode); GetDirectories(dir, subNode, rank); } }
internal void LoadDirectory(string dPath) { FileSchemeList.Clear(); int startRank = 0; CNode rootNode = new DirectoryCNode(startRank, Path.GetDirectoryName(dPath), null, dPath); GetDirectories(new DirectoryInfo(dPath), rootNode, startRank); DirectoryRoot = rootNode; this.mainDispatcher.Invoke((Action)(() => { CurrentDirectoryNode = rootNode; })); Parser psr = new Parser(); psr.Set_ParserInstance(new XmlParser()); ParseDirectory(rootNode as DirectoryCNode, psr, true); psr.Set_ParserInstance(new JsonParser()); ParseDirectory(rootNode as DirectoryCNode, psr, false); ParseFileDoneEvent(FileSchemeList); }