Поиск файлов в delphi 7

Компьютеры программирование Delphi делфи

Нашел в на просторах инета код delphi 7:

procedure GetAllFiles( Path: string; Lb: TListBox );
var
sRec: TSearchRec;
isFound: boolean;
begin
isFound := FindFirst( Path + '\*.*, faAnyFile, sRec ) = 0;
while isFound do
begin
if ( sRec.Name <> '.' ) and ( sRec.Name <> '..' ) then
begin
if ( sRec.Attr and faDirectory ) = faDirectory then
GetAllFiles( Path + '\' + sRec.Name, Lb );
Lb.Items.Add( Path + '\' + sRec.Name );
end;
Application.ProcessMessages;
isFound := FindNext( sRec ) = 0;
end;
FindClose( sRec );
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
GetAllFiles( 'C:\', listbox1 );
end;

Все работает, если ничего не менять. А вот если нужно найти файлы определенного типа (например по маске *.xls), то программа ищет только в текущей директории и в подкаталоги не заходит. Прошу объяснить.

Примечание:
В том и дело, что изменив строку с этой:
FindFirst( Path + '\*.*', faAnyFile, sRec ) = 0;

на эту:
FindFirst( Path + '\*.xls', faAnyFile, sRec ) = 0;

программа не заходит в подкаталоги, а ищет только в одной папке (в данном случае только в корне диска C)
Ответы:
GetAllFiles( 'C:', listbox1 );
isFound := FindFirst( Path + '\*.xls, faAnyFile, sRec ) = 0;
воно шукає папки '<name>.xls'
єслі ти зміниш імя з <name> в <name>.xls то процидура бу де заходити в папки,
папки шукати окремо  FindFirst( Path + '\*.*', faAnyFile, sRec ) = 0; і файли окремо
FindFirst( Path + '\*.xls', faAnyFile, sRec ) = 0;
ти повинен зробити так:
-  створити функцію яка шукае файли з певним тиво FindFirst( Path + '\*.xls', faAnyFile, sRec ) = 0;
-  створити функцію яка шукае папки FindFirst( Path + '*', faDirectory, sRec ) = 0;


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.