Para listar los directorios, otra vez mas, te dejo el codigo en delphi
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,nil,Data,0,Context);
if hFind <> nil then
begin
repeat
if (Data.dwFileAttributes and faDirectory) = faDirectory then
begin
ShowMessage(Data.cFileName);
end;
until not InternetFindNextFile(hFind,@Data);
InternetCloseHandle(hFind);
end;
InternetCloseHandle(hCon);
end;
InternetCloseHandle(hNet);
end;
end;
En cuanto a si el ftp esta "de moda" o no, no soy quien para contestarte. Yo lo veo perfectamente valido para subir ficheros a un servidor. Claro que hay otros métodos para transferir archivos (p2p, carpetas compartidas, http ...) todos tienen sus ventajas y sus inconvenientes, eso depende mucho de cada caso.