Я пытаюсь заполнить древовидную структуру из списка путей, например:
Project\\PageRefresh
Project\\OrderCreation
Project\\4. Blackbox\\Demo\\1. Integrated
Project\\4. Blackbox\\Demo\\2. Integrated
Project\\4. Blackbox\\Demo\\2.Transactional\\DefectTests\\Cash"
Project\\4. Blackbox\\Demo\\3. Utilities\\Login"
Я хочу вывод, подобный этому:
Project
|
├───PageRefresh
├───OrderCreation
│
│
├───4. Blackbox
│ └───Demo
│ └───1. Integrated
| |___2. Integrated
│ └───2.Transactional
│ └───DefectTests
| |___Cash
| |___3. Utilities
| |__Login
Я пробовал его сокна формы, и это работает. Теперь мне нужно перенести его в сеть. Ниже приведен код: -
private void Form1_Load(object sender, EventArgs e)
{
var paths = new List<string>
{
@"C:\WINDOWS\AppPatch\MUI\040C",
@"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727",
@"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MUI",
@"C:\WINDOWS\addins",
@"C:\WINDOWS\AppPatch",
@"C:\WINDOWS\AppPatch\MUI",
@"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MUI\0409"
};
TreeView treeview = new TreeView();
treeview.Nodes.Add(PopulateTreeNode2(paths, "\\"));
}
private TreeNode PopulateTreeNode2(string[] paths, string pathSeparator)
{
if (paths == null)
return null;
TreeNode thisnode = new TreeNode();
TreeNode currentnode;
char[] cachedpathseparator = pathSeparator.ToCharArray();
foreach (string path in paths) {
currentnode = thisnode;
foreach (string subPath in path.Split(cachedpathseparator))
{
if (null == currentnode.Nodes[subPath])
currentnode = currentnode.Nodes.Add(subPath, subPath);
else
currentnode = currentnode.Nodes[subPath];
}
}
return thisnode;
}
При попытке преобразовать его в asp.net я обнаружил, что treenode.Node не найден, метод TreeNode.Nodes.Add ведет себя по-разному. Буду признателен за любую помощь в преобразовании этого в Интернет. Я не много работал над веб-приложениями. Любой пример также поможет.