proc scan(cPath)
begin
while (FindNext(cPath+"\\*.*",cName)
if (cName - директория) scan(cPath+cName) else ДобавитьВДерево(cName);
end;
Помогите с TreeView и поиском фалов.
Как сделать, чтобы к примеру в TreeView отображалось содержимое папки и вложеных в нее подпапок и соответственно в ListView отображались файлы (как проводник). Только чтобы поиск происходил не по счелчку на ветке дерева (это не так уж сложно), а сразу создавалось развернутое дерево по нажатию на кнопке.
А может проще использовать уже сделанное? TShellTreeView и TShellListView?
Нет мне нужно именно самописную функцию.
Только всё это хозяйство долго работать будет....
а по подрбнее можно, не в смысле рекурсии, а как это сделать чтобы сканировались все (и даже вложение) папки и отображались деревом.
cPath - текущий путь сканирования, cName - текущий найденный файл/директория
Код:
Типа общий алгоритм. Вызывается, например, scan("c:\");
в таком случае в дерево будут добавлены сами файлы, да и еще не корректно отображаться
Знаеш, ты не обижайся конесно, но тебе уже дали примерную схему, а детали додумай сям.)
Код:
процедура1 (каталог, эллемент дерева)
переменная эллемент;
переменная эллемент дерева;
начало
эллемент = ищем первый эллемент(каталог);
цыкл если (эллемент = не пусто) то
начало
эллемент дерева = добавить (эллемент);
условие если (эллемент = каталог) то процедура1 (эллемент, эллемент дерева);
эллемент = ищем следующий эллемент(каталог);
конец;
конец;
переменная эллемент;
переменная эллемент дерева;
начало
эллемент = ищем первый эллемент(каталог);
цыкл если (эллемент = не пусто) то
начало
эллемент дерева = добавить (эллемент);
условие если (эллемент = каталог) то процедура1 (эллемент, эллемент дерева);
эллемент = ищем следующий эллемент(каталог);
конец;
конец;
Извени, что в виде алгоритма, посать и отлаживать код времени нету.)