![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 16.11.2006
Сообщений: 28
|
![]()
Доброго всем время суток.
У меня вот какой вопрос: Как получить пути всех вложенных папок в указанной папке. Например, в папке Windows мне нужно получить пути всех находящихся там папок и записать их в *.txt. Причем уровень вложения +∞, т.е. и пути папок находящихся в system32 и в temp и т.д. и .т.п. Корневую папку указываю через ShellListView. |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 14.11.2006
Сообщений: 23
|
![]()
Можно попрововать бросить DirectoryListBox
Установить путь DirectoryListBox1.Directory := 'C:\WINDOWS'; и таким макаром обрабатывать. TDirectoryListBox потомок TCustomListBox Последний раз редактировалось selenux; 16.11.2006 в 16:10. |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 16.11.2006
Сообщений: 28
|
![]()
Ммм... Не понимаю... ShellListView.Root, делает то же что и DirectoryListBox1.Directory. Как сделать обход всех вложенных папок и зафиксировать их имена и путь?
|
![]() |
![]() |
#4 |
Пользователь
Регистрация: 14.11.2006
Сообщений: 23
|
![]()
Привычка, отсюда и DirectoryListBox. Вложенные папки сканируются рекурсивно(Если Count=0 то вложенных папок нет)
|
![]() |
![]() |
#5 |
Пользователь
Регистрация: 16.11.2006
Сообщений: 28
|
![]()
Нашёл как это делается... Осталось узнать как со 100% вероятностью определить каталог это или как раз наоборот... Сейчас есть 1 косяк: если в названии каталога есть точка, то программа не заносит его в список.
Вот алгоритм: Код:
|
![]() |
![]() |
#6 |
Пользователь
Регистрация: 14.11.2006
Сообщений: 23
|
![]()
имя содержащее точку в общем виде записывается *.*. естественно, что он не попадает под маску *.
надо попробовать не \*. а \* |
![]() |
![]() |
#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 |