| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Алгоритм FileTree |
| Автор: XPurple 15.2.2007, 13:39 |
| Не могу понять алгоритма построения FileTree (дерева файлов), начиная от корня и ниже. Вывести "Гладкий" список файлов, используя рекурсивный метод, получается. Но дальше затык. Не могу понять: как привязать глубину хранения файла для передаваемой в качестве значения рекурсивной функции. Требуется построить что-типа этого --->DIR1- |---- |---- --->DIR2- |----DIR3- | |----DIR4 | |----DIR5- |---File1 --->DIR6 и т.д. |
| Автор: Aloha 15.2.2007, 22:51 |
| XPurple Есть такой TreeView control, который отображает список узлов (Node Objects) в иерархическом виде. Глянь в сторону объектной модели Node, возможно это подскажет решение проблемы. Узлы Node имеют в частности такие свойства: Root - это свойство возвращает ссылку на корневой узел; Parent - это свойство возвращает ссылку на родительский узел данного узла; Child - это свойство возвращает ссылку на первый дочерний узел данного узла; Children - это свойство возвращает количество дочерних узлов данного узла; У каждого родительского узла понятное дело может быть несколько дочерних узлов (а может и не быть). Следующие свойства определяют взаиморасположение дочерних узлов некоего родительского узла: Next - это свойство возвращает ссылку на следующий (сестринский) узел; Previous - это свойство возвращает ссылку на предыдущий (сестринский) узел; FirstSibling - это свойство возвращает ссылку на первый (сестринский) узел; LastSibling - это свойство возвращает ссылку на последний (сестринский) узел. |
| Автор: XPurple 16.2.2007, 08:15 |
| Хорошо. Посмотрим |
| Автор: Alexandr87 16.2.2007, 08:35 |
| Добавляете дополнительный параметр в вашу рекурсивную функцию - глубина. При вызове очередном рекурсивном вызове (передаете в функцию значение данного параметра, увеличенное на единицу), в зависимости от этого параметра, выводите необходимое число пробелов перед вашим |---- |
| Автор: XPurple 19.2.2007, 08:15 |
| Не все так просто. |
| Автор: Alexandr87 19.2.2007, 09:13 |
лаконично В чём проблемма? |
| Автор: XPurple 19.2.2007, 12:13 | ||
| проблема в том, что я не знаю, как определить степень вложенности относительно корня. Например: Root 1 2 3 4 2 Как определить степень вложенности относительно корня последней директории ? 1,2,3,4 это степени вложенности директорий В таком виде пока выводится:
|