AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Idftp nur Ordner auflisten

Ein Thema von gee21 · begonnen am 12. Jun 2014 · letzter Beitrag vom 15. Nov 2021
 
zeras

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

Idftp nur Ordner auflisten funktioniert nicht

  Alt 12. Nov 2021, 19: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 07:20 Uhr) Grund: erweitert
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz