El código tal cual te lo puse lista el contenido del directorio actual, así que si cambias el directorio actual, listara el contenido del nuevo directorio actual. De todas formas puedes especificar la ruta a listar:
Código Delphi
[-]
procedure Listar(Server: string; Port: Word;Username, Password: PChar);
var
hNet: HINTERNET;
hCon: HINTERNET;
hFind: HINTERNET;
Context: DWORD;
Data: WIN32_FIND_DATA;
begin
Context:= 0;
hNet := InternetOpen('agent', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if (hNet <> nil) then
begin
hCon:= InternetConnect(hNet,PChar(Server),Port,Username,Password,
INTERNET_SERVICE_FTP,0,Context);
if (hCon <> nil) then
begin
hFind:= FtpFindFirstFile(hCon,'/123/*',Data,0,Context); if hFind <> nil then
begin
repeat
ShowMessage(Data.cFileName);
until not InternetFindNextFile(hFind,@Data);
InternetCloseHandle(hFind);
end;
InternetCloseHandle(hCon);
end;
InternetCloseHandle(hNet);
end;
end;