Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];




Вниз

Как искать во вложенных папках файлы? 


Delphimun   (2002-01-09 15:00) [0]

findfirs и findnext ищут файлы только в указанной папке, а во вложенные не заглядывают. Есть ли способ, который мог бы искать и во вложенных папках, который можно было реализовать при помощи средств модуля system и Api(не хотелось бы загромаждать память другими модулями).

Искать fadirectory, а потом заглядывать в них на мой взгляд слишком хлопотно, но пока нет альтернативы пользуюсь этим.
Немогли бы вы предоставить мне альтернативу?

Заранее благодарен.



Vovchik   (2002-01-09 15:14) [1]

Конечно, можно. Нужно делать рекурсию. Ищешь все подкаталоги в данном, потом все подкаталоги в в первом из найденных подкаталогов и т.д. Потом в последнем каталоге находишь файлы.
Я такое как-то писал на С++, если надо могу поделиться.



Dimka Maslov   (2002-01-09 16:38) [2]

Поищи на форуме, такой вопрос задаётся почти ежедневно.



Polevi   (2002-01-09 17:17) [3]

procedure TForm1.GetFiles(APath: string);
var
sr:TSearchRec;
isFound:boolean;
begin
isFound:=FindFirst(APath+"*.*",faAnyFile,sr)=0;
while isFound do
begin
if (sr.Name<>".") and (sr.Name<>"..") then
begin
if sr.Attr=faDirectory then GetFiles(APath+sr.Name+"\");
Memo1.Lines.Add(APath+sr.Name);
end;
isFound:=FindNext(sr)=0;
end;
FindClose(sr);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
GetFiles("c:\");
end;




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.013 c
1-90251           Alex Marmuzevich      2002-01-08 23:12  2002.01.28  
DLL и EXE в одном флаконе.


1-90294           Vasilii               2002-01-08 10:19  2002.01.28  
Вызов консольного приложения


7-90397           Aelter                2001-10-14 14:31  2002.01.28  
Пользовательские настройки шрифтов


1-90303           KingSize              2002-01-11 11:35  2002.01.28  
Имя компьютера в сети


3-90228           Gelios                2001-12-24 06:50  2002.01.28  
Помогите плз!!