![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Задача состоит в том чтобы считать список имен файлов нескольких разных типов в 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 заносились только адреса файлов, пропуская папки? И как изменить код чтобы использовать несколько масок? Я новичок в программировании, поэтому хотелось бы рассчитывать на подробный ответ, если это возможно. |