Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Ftp.directorylisting (https://www.delphipraxis.net/15389-ftp-directorylisting.html)

-Volle- 27. Jan 2004 18:31


Ftp.directorylisting
 
Servus ich hab mal wieder ein kleines Problem ...

wenn ich Verzeichnis Daten von einem Ftp Server laden will mach ich das ja so :

Delphi-Quellcode:
list:=Tstringlist.Create;
ftp.List(list,'',true);
for i:=0 to ftp.DirectoryListing.count-1 do
 begin
  dateisize[i]:=ftpserver.DirectoryListing.Items[i].Size;
  dateidatum[i]:=ftpserver.DirectoryListing.Items[i].ModifiedDate;
 end;
list.free;
das is jetzt nur ein kleines Beispiel, ich frage da noch mehr ab...
mein Problem besteht aber darin, dass ich bei dieser Zeile
Delphi-Quellcode:
for i:=0 to ftp.DirectoryListing.count-1 do
eine "EAccessViolation" bekomme...
Genaue Fehlermeldung:
"Zugriffsverletzung bei Adresse 00404894 in Modul 'bla.exe'. Lesen von Adresse 00000000"

was kann ich dagegen tun ??
Wenn ich die items nicht in einer Schleife, abfrage, sondern nur z.B.

ftp.directorylisting.items[0].size abfrage, dann kommt eben keine Fehlermeldung..
mir scheints so als sein directorylisting nicht initialisiert oder erstellt worden, wenn ich aber vor dem list
Delphi-Quellcode:
ftp.directorylisting.creat
eintippel, dann kommt der gleiche feher!...

Danke schonmal im Vorraus

SirThornberry 27. Jan 2004 19:03

Re: Ftp.directorylisting
 
welche ftp-komponente benutzt du??

-Volle- 27. Jan 2004 20:56

Re: Ftp.directorylisting
 
aeh hups habs ja mal wieder uebel verrafft :>
tuerlich benutz ich indy9, bzw idftp ...
lol

-Volle- 28. Jan 2004 16:09

Re: Ftp.directorylisting
 
ich hab jetzt rausgefunden, dass es bei manchen FTP Servern funktioniert und bei manchen nicht... woran kann das liegen ?

-Volle- 1. Feb 2004 11:48

Re: Ftp.directorylisting
 
also ich habs jetzt so gelöst, dass ich zuerst nur eine liste mit den dateinamen abfrage und dann in einer function alle anderen daten ab, das geht soweit...

weiss aber nicht, wiexo es nicht alles auf einmal geht, was mich immernoch interessieren wuerde, da meine Lösung EXTREM inperformant is...

SirThornberry 1. Feb 2004 12:15

Re: Ftp.directorylisting
 
liegt daran das die verschiedenen ftp-server das list-commando unterschiedlich interpretieren, hamm sich wohl nicht alle programmierer an den standard gehalten. Manche ftp server liefern nur die Dateinamen beim listing zurück und andere eben noch die attribute dazu..

-Volle- 1. Feb 2004 12:20

Re: Ftp.directorylisting
 
ja, aber wenn ich immer einzeln
Delphi-Quellcode:
ftp.list(list,dateiname,true);
für jeden dateinamen abruf und dann eben die dateidaten mit
Delphi-Quellcode:
ftp.directorylisting.items[0].size
abfrag, dann geht es...
das is ja grad das witzige/nervende :>

naja cYa

shortbread 15. Apr 2004 18:55

Re: Ftp.directorylisting
 
Tja, das haben die Programmierer von Indy (meiner Meinung nach) verbockt.

Die Liste mit den Dir-Entries wird nämlich mit jedem Zugriff kürzer.
Einfach gesagt: Wenn man ein Entry abfragt, wird es danach automatisch gelöscht. Dämlich aber nicht zu ändern.

Meine Lösung:

Delphi-Quellcode:
 while directorylisting.count>0 do begin
  liste1.items.add(directorylisting.items[0]);
 end;
Mit liste1.items kann man dann arbeiten, ohne Angst vor Verflüchtigung haben zu müssen. :lol:
Hab ich nach 7,5 Stunden Frustation unter Schmerzen rausgefunden.

Hoffe, das hat die Klarheiten beseitigt.

Gruß, ShortbRead

-Volle- 15. Apr 2004 19:09

Re: Ftp.directorylisting
 
tHx ich tests mal ... :>

Unplugged 14. Sep 2004 08:22

Re: Ftp.directorylisting
 
Hi,

Delphi-Quellcode:
IdFTP1.DirectoryListing.Items[x].FileName
Mir ist aufgefallen, dass der Rückgabe-String fehlerhaft ist, sobald ein Leerzeichen am Ende des Dateinamens zu finden ist. Kann das jemand bestätigen bzw. weiß jemand, ob es einen Fix dafür schon gibt?

PS: Ich nutze derzeit Indy9


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:17 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