Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Mittels NMFTP Dateinamen auf dem FTP Server ausgeben lassen (https://www.delphipraxis.net/15710-mittels-nmftp-dateinamen-auf-dem-ftp-server-ausgeben-lassen.html)

pistazie 3. Feb 2004 08:22


Mittels NMFTP Dateinamen auf dem FTP Server ausgeben lassen
 
Hi,

ich hab ein Progrämmchen, welches mit der NMFTP-Komponente Daten vom lokalen Rechner auf den Server kopiert. So weit so gut. Nun soll ich vorhandene Dateinamen überprüfen, d.h. eine Abfrage einbauen wenn eine Datei mit dem selben Namen vorhanden ist, ob sie überschrieben werden soll.

Aber ich weiß nicht wie ich mir bei der Komponente NMFTP auf Dateinamen auf dem Server überprüfen lasse! Welche Eigenschaft bzw Methode ist das? Ich hab wirklich nix gefunden!

Kann mir da jemand weiterhelfen?

Luckie 3. Feb 2004 08:38

Re: Mittels NMFTP Dateinamen auf dem FTP Server ausgeben las
 
So direkt weiß ich auch nichts. Falls keiner eine bessere Idee hat: Versuch die Datei runterzuladen. Geht es, ist sie schon da.

pistazie 3. Feb 2004 08:40

Re: Mittels NMFTP Dateinamen auf dem FTP Server ausgeben las
 
Hab ich jetzt nicht so ganz verstanden, was du meinst?...

Aber es muss doch irgend eine Methode oder so geben für NMFTP, womit ich mir alle vorhandenen Dateinamen ausgeben lassen kann. Blos finde ich diese Methode nicht! :wall:

r_kerber 3. Feb 2004 08:41

Re: Mittels NMFTP Dateinamen auf dem FTP Server ausgeben las
 
Oder Du holst Dir das Inhaltsverzeichnis des jeweiligen Ordners und überprüfst, ob der Name vorhanden ist.

pistazie 3. Feb 2004 08:42

Re: Mittels NMFTP Dateinamen auf dem FTP Server ausgeben las
 
Und wie geht das?

Luckie 3. Feb 2004 08:48

Re: Mittels NMFTP Dateinamen auf dem FTP Server ausgeben las
 
Zitat:

Zitat von pistazie
Hab ich jetzt nicht so ganz verstanden, was du meinst?...

Na ist doch ganz einfach. Bevor du die Datei hochlädst, versuchst du sie runterzuladen. Und das geht nur, wenn sie schon da ist. Bekommst du einen fehler, ist sie nicht da und du kannst ohne zu fragen hochladen. Ist aber nur eine Quick and Dirty Lösung. Besser ist die Idee von Rainer.

r_kerber 3. Feb 2004 08:49

Re: Mittels NMFTP Dateinamen auf dem FTP Server ausgeben las
 
Keine Ahnung. Schau mal in der Hilfe nach, ich habe diese Kompos nicht mehr. Bei Indy heißt die Methode List.

[Edit]Habe gerade mal 'ne alte Hilfedatei hervorgekramt. Bei NMFTP sollte die Methode Nlist heiße.[/Edit]

pistazie 10. Feb 2004 12:53

Re: Mittels NMFTP Dateinamen auf dem FTP Server ausgeben las
 
hi nochmal,

das Problem bei NMFTP ist: ich kann mit der Prozedur .NList oder .List nix anfangen. Diese Prozeduren haben keinen Parameter. Oder mache ich irgendwas falsch?

Kann mir keiner weiterhelfen?

little-wolf 18. Feb 2004 15:35

Re: Mittels NMFTP Dateinamen auf dem FTP Server ausgeben las
 
Hallo

habe auch ein Problem mit der Funktion List von NMFtp
und zwar bleibt mir die Verarbeitung stehen. Das heisst,
einmal funktioniert "List" und einmal wieder nicht.
Es bleibt irgend wo hängen und löst nicht mal eine
Exception aus!!! Toll, nicht? Und da man die Source zu
dieser genialen Komponente ja nicht hat, ist man ziemlich
aufgeschmissen...

Was mache ich falsch??? Mach ich was falsch???


Zu deinem Problem:
Wen das Attribut ParseList auf True gesetzt ist, und du
die Funktion "List" aufrufst, dann hast du die ausgelisteten
Daten im Attribut "FTPDirectoryList" und kannst dann
z. B. mit "FTPDirectoryList.name[0]" auf den Namen des ersten
Files (in der Liste), zugreifen.

Dummerweise sind die angaben zum File, wie z. B. das Datum,
in einer so blöden Schreibweise festgehalten, dass man eigentlich
nichts damit anfangen kann. So hat man ganz schön mühe, wenn man
überprüfen will, ob das lokale File z. B. neuer ist, als das auf
dem Server.

Ich hoffe dir damit etwas weiter geholfen zu haben.


Gruss little-wolf

Luckie 18. Feb 2004 15:42

Re: Mittels NMFTP Dateinamen auf dem FTP Server ausgeben las
 
Zitat:

Zitat von little-wolf
Hallo

habe auch ein Problem mit der Funktion List von NMFtp
und zwar bleibt mir die Verarbeitung stehen. Das heisst,
einmal funktioniert "List" und einmal wieder nicht.
Es bleibt irgend wo hängen und löst nicht mal eine
Exception aus!!! Toll, nicht? Und da man die Source zu
dieser genialen Komponente ja nicht hat, ist man ziemlich
aufgeschmissen...

Ich vermute mal, dass es am Server liegt. Probier es mal bei anderen Servern aus.

Zitat:

Dummerweise sind die angaben zum File, wie z. B. das Datum,
in einer so blöden Schreibweise festgehalten, dass man eigentlich
nichts damit anfangen kann. So hat man ganz schön mühe, wenn man
überprüfen will, ob das lokale File z. B. neuer ist, als das auf
dem Server.
Wird wohl im Unix/Linux Format vorliegen, je nach dem, was es für ein Server ist.

little-wolf 19. Feb 2004 07:35

Re: Mittels NMFTP Dateinamen auf dem FTP Server ausgeben las
 
Hallo Luckie

habe dieses Phänomen auch auf anderen Servern.
Teilweise kann ich es zwei-drei mal nach einander
aufrufen (List) und es funktioniert. Dann probier ich
es erneut und es klappt schon wieder nicht...
Manchmal klappt es auch schon beim ersten mal nicht.
->ähnlich einem Zufallsgenerator...


Mit den Zeitformaten kenne ich mich nicht aus...
Ich hab einfach das Datum des lokalen Files ausgelesen
und über die Funktion List, aus dem Property der NMFtp-
Komponente, dann das Datum des Files auf dem Server.
Wie du schon gesagt hast, ist das Format völlig unter-
schiedlich. In diesem Property steht der Monat (so viel
ich noch weiss) in Buchstaben, z. B. JAN oder so, drin...

socke 3. Mär 2004 11:08

Re: Mittels NMFTP Dateinamen auf dem FTP Server ausgeben las
 
Hallo!

Ich habe das gleiche Problem wie little Wolf.

Irgendwie habe ich den Eindruck es hängt von der Anzahl der Verzeichniseinträge wieoft und ob es geht oder nicht.

Man kann auch ein Property OnListItem setzen und seinen eigenen Parser für die Liste anklemmen - es wird dann für jeden String ein OnListItem ausgeführt.
Leider führt das wohl auch dazu dass man dann für jeden NMOS_XYZ vendor Eintrag einen eigenen Parser schreiben muss (uff!).

Hat diese Komponente mit Verzeichnislisten überhaupt schon mal bei jemand richtig funktioniert?

Vielen Dank im voraus!
Andreas

Primogenrufus 5. Apr 2005 11:12

Re: Mittels NMFTP Dateinamen auf dem FTP Server ausgeben las
 
An sich find ich die Komponente gar nicht schlecht, weil sie insgesamt ähnlich wie der DOS-FTP-Client zu benutzen ist, und damit ganz intuitiv. Aber Fehlerhaft ist sie auf jeden Fall. Trotzdem, ich benutze sie sogar für anmeldungen über Proxy-Server, das geht auch ganz gut.

Aber jetzt bin ich an einem Problempunkt: Ich hab bis jetzt nur auf einem Testserver gearbeitet, und die Dateiliste per ListItem geparst. Beim Test auf nem zweiten Server fiel mir dann auf, dass die Liste da ganz anders aussieht. N kurzer Test mit FTPDirectoryList hat gezeigt, dass das nix bringt, weil ich kein Ergebnis kriege. Der String is wahrscheinlich für den Parser unbekannt.

Also die Fragen: Hat jemand genauere Infos über die Parser der Komponente? Vor allem über die verschiedenen Dateilisten, die man per FTP kriegen kann, ListItem, FTPDirectoryList und FTPDirectoryList.ParseLine?

PS: Die unterschiedlichen Formate in der Liste hängen vom Server/Client und dessen System ab. Da kann die Komponente auch nix für.

Primogenrufus 5. Apr 2005 11:18

Re: Mittels NMFTP Dateinamen auf dem FTP Server ausgeben las
 
Kleiner Nachtrag:
mit NLIST kriegt man auf jeden Fall die Dateinamen, sogar auf dem Server, auf dem ich keine Dateiliste FTPDirectoryList kriege. Aber ich bräuchte noch die Bytezahl für eine Übertragungsanzeige.
Hat jemand ne Idee?


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