Einzelnen Beitrag anzeigen

zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#7

Idftp nur Ordner auflisten funktioniert nicht

  Alt 12. Nov 2021, 20:29
Ich benutze folgende Funktion, um auf dem FTP Sever Verzeichnisse auszulesen.
Das funktioniert unter 10.4, aber nicht mehr unter 11.
Weiß jemand, ob sich bei Indy etwas geändert hat?

Delphi-Quellcode:
Function FTPDirExists(var DirName: String; IdFTPComp: TIdFTP): Boolean;
var
  itm: TIdFTPListItems;
  i : integer;

begin
  Result := False;

  IdFTPComp.List;
  itm := IdFTPComp.DirectoryListing;
  for i := 0 to itm.count -1 do begin
    if itm.Items[i].ItemType = ditDirectory then begin
      if itm.Items[i].Filename <> '.then begin
        if itm.Items[i].Filename <> '..then begin
          if UpperCase(itm.Items[i].Filename) = UpperCase(DirName) then begin

            //da FTP Server Groß/Kleinschreibung unterscheiden,
            //machen wir den Test alles mit Großschreibung und geben gegebenenfalls den
            //korrekten Pfad trotzdem zurück
            DirName := itm.Items[i].Filename;
            Result := True;
            Exit;
          end;
        end;
      end;
    end
  end;
end;
Es kommt immer TimeOut nach der eingestellten Zeit, siehe unten weiteres Beispiel.
Soweit wie mir bekannt ist, ist das ein ServU auf der anderen Seite.

Delphi-Quellcode:
var
  list_directories: TStringList;
  i : integer;
begin

  //nun versuchen, sich beim FTP Server einzuloggen
  IdFTP1.Host := 'xxx.de';
  IdFTP1.Username := 'username';
  IdFTP1.Password := 'Password';


    if not IdFTP1.Connected then IdFTP1.Connect;
    if not IdFTP1.Connected then begin
      ShowMessage(Format('FTP Server not connected! Cancel', []));
    end;
    i := IdFTP1.Greeting.Text.Count;
    ShowMessage(IdFTP1.Greeting.Text[0]);
    list_directories := TStringList.create;
    idftp1.List(list_directories, '', true); >>>>>>>>>>>>>>> hier immer TimeOut
    for i := list_directories.Count - 1 downto 0 do begin
      ShowMessage(list_directories[i]);
    end;
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain

Geändert von zeras (13. Nov 2021 um 08:20 Uhr) Grund: erweitert
  Mit Zitat antworten Zitat