Powtórzenia w wynikach szukania

0

Używam WinInet API do napisania małego programu do FTP. Jest w nim taka jedna funkcja która wypisuje wszystkie foldery w folderze X. Gdy jest wywoływana to nie wiem czemu <ort>wykożystuje </ort>poprzednie wyniki...

function ftpDirDir(hServ: HINTERNET; dir: PChar): string;
var
  hSearch: HINTERNET;
  Data: WIN32_FIND_DATA;
begin
  result:='';
  hSearch:=FtpFindFirstFile(hServ, nil, Data, INTERNET_FLAG_RELOAD, 0); //tu jest folder .
  if hSearch<>nil then
  begin
    InternetFindNextFile(hSearch, @Data); // folder ..
    InternetFindNextFile(hSearch, @Data); // pierwsza ciekawa rzecza
    repeat
      if Data.dwFileAttributes=faDirectory then
        result:=result+string(dir)+string(Data.cFileName)+' '; // olejcie rzutowania, to przez ten gupi PChar :/
    until not InternetFindNextFile(hSearch, @Data);
    InternetCloseHandle(hSearch);
  end;
end;

Za drugim wywołaniem jest to co wcześniej+nowe. Niby flaga INTERNET_FLAG_RELOAD powinna temu zapobiec ale coś jej nie wychodzi. To nie powinno być też z wartością funkcji (result) bo przecież jest result:=''. Wie ktoś czemu są te powtórzenia i jak ich uniknąć?

0

!BUMP!

To może zna ktoś lepszy (czyt. działający) sposób na przeskanowanie FTP? Ograniczenia: aplikacja - konsolowa, indy - nie, marshall - nie... nic niestandardowego.

z góry dziękuję

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.