У меня есть функция GetDirectories(), который возвращает мне список информации каталога: Теперь мне нужно восстановить древовидный из него, на основе своего родителяReconstruct Древовидное из списка <DirectoryInfo>
Вот моя функция Getdirectories
которой возвращает List
:
public List<DirectoryInfo> GetDirectories()
{
DirectoryInfo di = new DirectoryInfo("D:\\python_code");
folders.Clear();
FullDirList(di, "*");
return folders;
}
static List<DirectoryInfo> folders = new List<DirectoryInfo>(); // List that hold direcotries that cannot be accessed
static void GetFullDirList(DirectoryInfo dir, string searchPattern)
{
try
{
foreach (FileInfo f in dir.GetFiles(searchPattern))
{
files.Add(f);
}
}
catch
{
}
foreach (DirectoryInfo d in dir.GetDirectories())
{
folders.Add(d);
FullDirList(d, searchPattern);
}
}
мне нужно что-то вроде этого, чтобы быть построен из списка, который содержит все элементы DirectoryInfo т.е. содержит родительскую информацию также.
до сих пор я пытаюсь получить элементы, родитель однотипны и заселить его просмотра в виде дерева и сделать это рекурсивно: Но я не в состоянии получить рекурсивную функцию написанную через.
Я знаю их другие более простые способы сделать то же самое, но это набор большой картины, которую я пытаюсь нарисовать. всякая помощь была бы предельно аппроксимирована.
Спасибо за ответы. , +1 для чистого и простого способа, но мне нужно добавить узел дерева вместо простой строки, который будет иметь каждый узел как каталогinfo, так что мне не нужно делать поиск его родителем. делая это var node = treeView1.Nodes.Find (di.Parent.FullName, true); не работает для меня – csharpcoder
Вы должны иметь возможность установить 'FullPath' вашего treeNode в di.FullName и с этим я ожидаю, что его можно найти. – rene
Я благодарю еще раз. , я получил его работу – csharpcoder