![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#4
|
|||
|
|||
![]() Все просто.
Ты задаешь паттерн поиска '*.exe' Таких файлов и директорий в корне нет. Если ты хочешь искать рекурсивно по директориям, то ты должен искать все файлы. Делай, например, так: Код:
uses Masks; procedure TForm1.Button1Click(Sender: TObject); begin CheckListBox1.Clear; findfile('c:\', '*.exe'); end; procedure TForm1.FindFile(Dir: string; Pattern : String); var SR: TSearchRec; FindRes: Integer; begin FindRes := FindFirst(Dir + '*.*', faAnyFile, SR); while FindRes = 0 do begin if ((SR.Attr and faDirectory) = faDirectory) and ((SR.Name = '.') or (SR.Name = '..')) then begin FindRes := FindNext(SR); Continue; end; // если найден каталог, то if ((SR.Attr and faDirectory) = faDirectory) then begin // входим в процедуру поиска с параметрами текущего каталога + // каталог, что мы нашли FindFile(Dir + SR.Name + '\', Pattern); FindRes := FindNext(SR); // после осмотра вложенного каталога мы продолжаем поиск // в этом каталоге Continue; // продолжить цикл end; If MatchesMask(SR.Name,PAttern) Then CheckListBox1.Items.Add(SR.Name); FindRes := FindNext(SR); end; FindClose(SR); end; |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
coffeine (27.12.2020)
|