powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Спискок поддиректорий
5 сообщений из 5, страница 1 из 1
Спискок поддиректорий
    #32045870
Denis_Ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!

Подскажите пжалста, как наиболее оптимальным образом получить список поддиректорий у указанного каталога, желательно не использую никаких визуальных объектов.

Буду благодарен за все мысли или исходники.
...
Рейтинг: 0 / 0
Спискок поддиректорий
    #32045922
Предводитель команчей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написать функцию, использующую рекурсивный алгоритм для просмотра директория.
...
Рейтинг: 0 / 0
Спискок поддиректорий
    #32046257
Denis_Ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi ALL!
ToПредводитель команчей
АБАЛДЕТЬ как смешно!
До этого я и сам догадался!
Меня интересовал механизм получения списка поддиректорий, может есть какая-нибудь функция, которая возвращает такой список.
FindFirst(), FindNext() не предлагать.
...
Рейтинг: 0 / 0
Спискок поддиректорий
    #32046309
Предводитель команчей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Denis Ka. А чем вас не устраивает FindNext(), FindFirst() ?
Хотя я не могу сразу сказать, можно ли получить сабж по-другому, разве что используя Win API.
Я делал так - функция имеет на входе путь к каталогу или диску с которого начинать просмотр и объект List типа TString куда записываются найденные директории/поддиректории/файлы. Пример правда на билдере, но вам не трудно будет его переписать на Дельфи под свои нужды.

void __fastcall TForm1::ListFiles(AnsiString Path, TStrings *List)
{
TSearchRec SR;
if (FindFirst(Path+"*.*", faAnyFile, SR) == 0)
{
do
{
if(SR.Attr & faDirectory)
{
if (SR.Name != ".")
if (SR.Name != "..")
{
ListFiles(Path+SR.Name+"\\", List);  
}
else
{
AnsiString Ext = ExtractFileExt(SR.Name).UpperCase();
if(Ext == ".cpp")
List->Add(Path+SR.Name);
}
}
}
while (FindNext(SR) == 0);
FindClose(SR);

Удачи.
...
Рейтинг: 0 / 0
Спискок поддиректорий
    #32046390
Denis_Ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
ToПредводитель команчей
Я не хотел использовать визуальных объедков, т.к. для пользователя они не будут видны, а из-за них прога пухнет прилично. Но Ваш пример мне подойдет, т.к. вместо TList можно использовать TStringList. Спасибо за алгоритм!!!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Спискок поддиректорий
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]