|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
16.11.2006, 06:32 | #1 |
Пользователь
Регистрация: 16.11.2006
Сообщений: 28
|
древо каталогов
Доброго всем время суток.
У меня вот какой вопрос: Как получить пути всех вложенных папок в указанной папке. Например, в папке Windows мне нужно получить пути всех находящихся там папок и записать их в *.txt. Причем уровень вложения +∞, т.е. и пути папок находящихся в system32 и в temp и т.д. и .т.п. Корневую папку указываю через ShellListView. |
16.11.2006, 14:25 | #2 |
Пользователь
Регистрация: 14.11.2006
Сообщений: 23
|
Можно попрововать бросить DirectoryListBox
Установить путь DirectoryListBox1.Directory := 'C:\WINDOWS'; и таким макаром обрабатывать. TDirectoryListBox потомок TCustomListBox Последний раз редактировалось selenux; 16.11.2006 в 16:10. |
17.11.2006, 07:52 | #3 |
Пользователь
Регистрация: 16.11.2006
Сообщений: 28
|
Ммм... Не понимаю... ShellListView.Root, делает то же что и DirectoryListBox1.Directory. Как сделать обход всех вложенных папок и зафиксировать их имена и путь?
|
17.11.2006, 10:28 | #4 |
Пользователь
Регистрация: 14.11.2006
Сообщений: 23
|
Привычка, отсюда и DirectoryListBox. Вложенные папки сканируются рекурсивно(Если Count=0 то вложенных папок нет)
|
20.11.2006, 08:00 | #5 |
Пользователь
Регистрация: 16.11.2006
Сообщений: 28
|
Нашёл как это делается... Осталось узнать как со 100% вероятностью определить каталог это или как раз наоборот... Сейчас есть 1 косяк: если в названии каталога есть точка, то программа не заносит его в список.
Вот алгоритм: Код:
|
20.11.2006, 12:34 | #6 |
Пользователь
Регистрация: 14.11.2006
Сообщений: 23
|
имя содержащее точку в общем виде записывается *.*. естественно, что он не попадает под маску *.
надо попробовать не \*. а \* |
21.11.2006, 06:22 | #7 |
Пользователь
Регистрация: 16.11.2006
Сообщений: 28
|
Я тоже так думал, но оказалось что маска *. выводит все что НЕ содержит точку... В общем-то удобно, но если в названии каталога есть точка, то он не заносит этот каталог в список...
А маска * выводит вообще все что найдет. Надо как-то проверять не через маску... Например у ShellListView есть функция проверки IsFolder, если каталог то True. Но чтобы ею воспользоваться надо сначала в Root занести путь к каталогу, содержащему проверяемый файл, а потом ещё узнать какой он по счёту... Геморройно в общем... Может это как-то можно сделать через переменные Windows? Как-то же он понимает файл это или каталог. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Имена каталогов и подкаталогов | Xandr | Общие вопросы Delphi | 11 | 29.03.2010 21:36 |
Помогите как сделать отображение каталогов??? | SANTA_KLAUD | Общие вопросы Delphi | 6 | 30.04.2008 23:47 |
список каталогов | VVVadim | Общие вопросы Delphi | 11 | 03.04.2008 13:00 |
Создание удаление каталогов, копирование файлов. | Alar | Общие вопросы Delphi | 1 | 18.12.2007 18:30 |
Дерево каталогов в табличной форме | Македонский | Общие вопросы Delphi | 11 | 30.08.2007 16:47 |