Hola, puedes utilizar FindFirst y FindNext.
Código Delphi
[-]
var
Path : String;
sr: TSearchRec;
begin
if SelectDirectory('Seleccione la ruta del directorio', '', Path) then
begin
Try
Path := IncludeTrailingPathDelimiter(Path);
if FindFirst(Path + '*.zip', faArchive, sr) = 0 Then
repeat
Memo1.Lines.Add(sr.Name);
until FindNext(sr) <> 0;
Finally
FindClose(sr);
end;
Saluditos