Показать сообщение отдельно
  #1  
Старый 27.06.2008, 22:22
Аватар для timeless
timeless timeless вне форума
Прохожий
 
Регистрация: 27.06.2008
Сообщения: 36
Репутация: 12
По умолчанию Список файлов в ListBox, надо модифицировать код

Задача состоит в том чтобы считать список имен файлов нескольких разных типов в ListBox.

В интернете нашел такой код:
Код:
procedure ScanDir(StartDir: string; Mask:string; List:TStrings);
var  SearchRec : TSearchRec;
begin if Mask = '' then Mask := '*.*';
  if StartDir[Length(StartDir)] <>  '\' then StartDir := StartDir + '\';
  if FindFirst(StartDir+Mask, faAnyFile, SearchRec) = 0 then
  begin
    repeat
    Application.ProcessMessages;
    if (SearchRec.Attr and faDirectory) <>  faDirectory then
      List.Add(StartDir + SearchRec.Name)
    else if (SearchRec.Name <>  '..') and (SearchRec.Name <>  '.') then
    begin
      List.Add(StartDir + SearchRec.Name + '\');
      ScanDir(StartDir + SearchRec.Name + '\',Mask,List);
    end;
    until FindNext(SearchRec) <>  0;
      FindClose(SearchRec);
    end;
end;

Используется так:
Код:
ScanDir(<путь>,'',ListBox1.Items);

Но эта процедура вместе с адресами файлов заносит в ListBox еще и адреса папок, что мне не нужно. К тому же она позволяет использовать только одну маску.

Как сделать чтобы в ListBox заносились только адреса файлов, пропуская папки? И как изменить код чтобы использовать несколько масок?

Я новичок в программировании, поэтому хотелось бы рассчитывать на подробный ответ, если это возможно.
Ответить с цитированием