AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Rekursiver Aufruf von FTPFindFirstFile
Thema durchsuchen
Ansicht
Themen-Optionen

Rekursiver Aufruf von FTPFindFirstFile

Ein Thema von hsbc · begonnen am 5. Jun 2008 · letzter Beitrag vom 18. Mär 2012
 
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#14

AW: Rekursiver Aufruf von FTPFindFirstFile

  Alt 18. Mär 2012, 14:09
Bei dem Auflisten eines Verzeichnis über FTP muss man richtig vorgehen.
FTP Zugriffe sind teuer da sie über das Netzwerk gehen und dementsprechend viel Zeit brauchen.
Daher muss die Strategie so aussehen:
Verzeichnis mit "List" abrufen und alle Dateien in den Tree eintragen.
Unterverzeichnisse werden in diesem 1. Durchlauf ignoriert.
In einem 2. Durchlauf durch ftp.DirectoryListing werden alle Unterverzeichnisse rekursiv besucht.
Ein erneutes Auflisten des aktuellen Verzeichnis ist dabei unnötig und muss unbedingt vermieden werden!!

Sehr zu empfehlen ist auch die Übergabe einer Rekursionstiefe:
Delphi-Quellcode:
procedure ListDir(dir: String; const tv: TTreeView; tn: TTreeNode; level:integer);
begin
  if level <= 0 then Exit;
  ...
  // und später der rekursive Aufruf
  listdir(itm.items[i].filename, tv, node, level - 1);
...
Möchte man nur das Basisverzeichnis auflisten übergibt man für "level" den Wert 1;
um alle Unterverzeichnisse aufzulisten übergibt man einen Wert > 100.
Das sollte für alle "normalen" FTP Server ausreichen.
Bei einem unbekannten FTP-Server könnte man mit level=2 beginnen, damit man sich nicht in den möglichweise Tausenden Unterverzeichnissen verliert.
  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 12:41 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