FindFirst/FindNext/FindClose;
Код:
procedure GetFolderList(APath : String; var AList : TStringList);
var
iFound : Integer;
F : TSearchRec;
begin
AList.Clear;
APath := IncludeTrailingPathDelimeter(APath);
iFound := FindFirst(APath + '*.*',faAnyFile,F);
While iFound = 0 Do
Begin
If (F.Attr And faDirectory) <> 0 Then AList.Add(F.NAme);
iFound := FindNext(F);
End;
FindClose(F);
end;