Помогите исправить поисковик файлов по расширеню
В общем использую следующий алгоритм для поиска
Код:
procedure TdlgSearchResults.SearchDir(Dir,Ext: string);
var
SR: TSearchRec;
FindRes: Integer;
Item:TListItem;
begin
FindRes := FindFirst(Dir + Ext, 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
SearchDir(Dir + SR.Name + '\',Ext);
FindRes := FindNext(SR);
Continue;
end;
//Files.Add(Dir + SR.Name);//Add to list
Item:=lvFiles.Items.Add;
Item.Caption:=SR.Name;
Item.SubItems.Add(IntToStr(SR.Size));
Item.SubItems.Add(Dir);
//showmessage(dir+sr.Name);
FindRes := FindNext(SR);
end;
FindClose(FindRes);
end;
При поиске файлов по маске *.* находит все, при поиске к примеру *.exe находит первый файл и прекращает искать.
При поиске к примеру *p* работает отлично, то же самое и при поиске без точки *exe*.