Блог программистов



F.A.Q.Pblog

1й год Форума программистов 2006-2007

Поиск файлов в папках и подпапках

Есть папка. В этой папке находатся ещё три подпапки. Нужно найти все файлы, удоволетворяющие условиям поиска, в папке, а потом во всех подпапках, с теми же условиями.

Вот что у меня получилось:
Код:
Procedure TMainForm.AddFolderToPlayList(Dir: String; Format: String; Folder: Boolean); Var Folders: TStrings;// Memo на форме I, M: Integer; SearchRec: TSearchRec; Begin M:=-1; If FindFirst(Dir + Format, faAnyFile, SearchRec) = 0 Then Begin PlayListBox.Items.Add(Dir+SearchRec.Name); While (FindNext(SearchRec) = 0) Do PlayListBox.Items.Add(Dir+SearchRec.Name); End; FindClose(SearchRec); If Folder Then Begin If FindFirst(Dir+'*', faDirectory, SearchRec) = 0 Then Begin If (SearchRec.Name<>'') And (SearchRec.Name<>'.') And (SearchRec.Name<>'..') Then Begin M:=M+1; Folders.Add(Dir+SearchRec.Name+'\'); End; While (FindNext(SearchRec) = 0) Do If (SearchRec.Name<>'') And (SearchRec.Name<>'.') And (SearchRec.Name<>'..') Then Begin M:=M+1; Folders.Add(Dir+SearchRec.Name+'\'); End; FindClose(SearchRec); For I:=0 To M Do AddFolderToPlayList(Folders.Strings[i], Format, True); End; End; End;
Но это работать не хочет. Точнее добавляет файлы только из первой папки. А дальше либо ничего не находит, либо зацикливается и вылетает.

Что в процедуре не так?


Просмотр ответов:
http://programmersforum.ru/showthread.php?t=3388


Другие вопросы:
Требуется программным путём считать несколько ключей с реестра из одного раздела.
Компонент для работы с GIF
Как сделать нестандартную форму
Как динамически создать процедуры для подменю компонента TMainMenu
Сравнение текстовых файлов



<<<Назад    Вперёд>>>