![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#4
|
||||
|
||||
|
sMask - маска для поиска, например, *.* или *.mp3 или somefile.ext
sDirPath - путь до папки, в которой будет происходить поиск iFilesCount - возвращаемая переменная с количеством найденных файлов если это не нужно, можнр легко исключитьь из ф-ии saFound - возвращаемый массив с путями до найденных файлов bRecurse - искать ли в подпапках Код:
function FilesInDir(sMask, sDirPath: String; var iFilesCount: Integer; var saFound: TStrings; bRecurse: Boolean = True): Integer;
var
sr: TSearchRec;
begin
try
if FindFirst(sDirPath + sMask, faAnyFile, sr) = 0 then
begin
repeat
if (sr.Name <> '.') and (sr.Name <> '..') and (sr.Attr and faDirectory = 0) then
begin
Inc(iFilesCount);
if saFound <> nil then
begin
if saFound.IndexOf(sDirPath + sr.Name) < 0 then
saFound.Add(sDirPath + sr.Name);
end;
end
else
begin
if (sr.Name <> '.') and (sr.Name <> '..') and (bRecurse) then
FilesInDir(sMask,sDirPath + sr.name + '\',iFilesCount,saFound,bRecurse);
end;
until
FindNext(sr) <> 0;
end;
FindClose(sr);
except
Result := -1;
end;
end;
Пример использования: Код:
//...
var
iCount: Integer;
sImagesPath: String;
saImages: TStrings;
begin
sImagesPath := 'c:\папка\';
saImages := TImagesList.Create();
FilesInDir('.jpg',sImagesPath,iCount,saImages,True);
// у нас в saImages список всех файлов с разширением .jpg,
// находящихся в папке c:\папка
saImages.Free;
end;Писал по памяти, мог ошибиться где-нить... |