Показать сообщение отдельно
  #2  
Старый 14.09.2013, 21:23
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Зачем так сложно?
Код:
uses Masks;

procedure FindMp3(ADir : String; AFilter : String; ASubfolders : Boolean);
var
  F : TSearchRec;
  iFound : Integer;
begin
  ADir := IncludeTrailingPathDelimiter(ADir);
  iFound := FindFirst(ADir + '*.*',faAnyFile,F);
  While iFound = 0 Do
    Begin
      If (F.Name <> '.') And (F.Name <> '..') Then
        Begin
          If ((F And faDirectory) <> 0) And ASubfolders
            Then FindMP3(ADir + F.Name,AFilter,ASubfolders)
            Else
              If MatchesMask('*'+AFilter+'*.mp3',FName) Then
                 Form1.ListBox.Items.Add(ADir + F.Name);
        End;
      iFound := FindNext(F);
    End;
  FindClose(F);
end;

И вся любовь...
ЗЫ. Не помню точно в какой последовательности идут параметры в MatchesMask, может маску и имя файла надо поменять местами. Ну и список, куда добавляются файлы написал "от балды", поправишь соответсвенно.
Ответить с цитированием