Seite 1 von 1

FTP Prüfen ob Datei vorhanden ist

Verfasst: 10.06.2014 11:33
von Amor_2001
Hallo,

ich habe eine Liste mit Dateinamen und muss prüfen, ob diese Dateien auf einem FTP Server vorhanden sind.

Die Variante über eine Schleife .....

Code: Alles auswählen

       for i=1 to AnzahlNamen
         If ExamineFTPDirectory(1)
           While NextFTPDirectoryEntry(1)
             If LCase(FTPDirectoryEntryName(1)) = Lcase(Dateiname(i))
                Debug "Datei "+Dateiname(i)+" vorhanden"
                Continue
             Else
                Debug "Datei "+Dateiname(i)+" nicht vorhanden"
             EndIf
            Wend
          EndIf
         Next

finde ich umständlich. Geht es auch einfacher und effizienter?


Vielen Dank schon mal vorab.

__________________________________________________
Code-Tags hinzugefügt
10.06.2014
RSBasic

Re: FTP Prüfen ob Datei vorhanden ist

Verfasst: 10.06.2014 14:20
von Kiffi

Re: FTP Prüfen ob Datei vorhanden ist

Verfasst: 10.06.2014 14:22
von Bisonte
Es geht nur so. Es sei denn du verbindest dich direkt mit dem FTP Server per OpenNetworkConnection....

Allerdings solltest du deine Schleife umstellen.

Momentan wird bei jedem Dateinamen der geprüft werden soll, der Verzeichnisinhalt vom Server geholt.
Das ist bestimmt eine Bremse ;)

Man braucht nur einmal die Verzeichnisliste holen (am besten in eine LinkList) und kann dann die Dateinamen vergleichen.

Re: FTP Prüfen ob Datei vorhanden ist

Verfasst: 10.06.2014 15:24
von Amor_2001
Leider geht das nicht, da sich während der Abarbeitung der Inhalt des Verzeichnisses verändern kann, d.h. Dateien können hinzukommen bzw. gelöscht werden. Ist also dynamisch der Prozess. Gibt es denn keine Alternativen?

Re: FTP Prüfen ob Datei vorhanden ist

Verfasst: 10.06.2014 16:44
von NicTheQuick
Man könnte ja auch einfach mit 'ReceiveFTPFile()' versuchen die Dateien asynchron herunterzuladen und direkt wieder mit 'AbortFTPFile()' wieder abbrechen. Dann kann man checken, ob die Datei existiert oder nicht.

Ansonsten sollte man das Problem aber anders lösen. Also das macht für mich überhaupt keinen Sinn mehrfach 'ExamineDirectory()' aufzurufen, nur weil sich zwischenzeitlich was ändern könnte. Dann stellt man lieber sicher, dass das nicht passieren kann.

Re: FTP Prüfen ob Datei vorhanden ist

Verfasst: 10.06.2014 17:09
von Amor_2001
@NicTheQuick

Ich kann leider nicht sicherstellen, das für de Zeit keine Veränderungen stattfinden, da andere Prozesse dort die Dateien anlegen bzw. löschen. Das ist ja das Dilemma.
Noch ene Idee?

Re: FTP Prüfen ob Datei vorhanden ist

Verfasst: 10.06.2014 19:55
von NicTheQuick
Aber wenn sich das doch eh immer ändert, bringt es doch auch nichts das überhaupt eine gewisse Zeit lang anzuzeigen, oder? Weil während du es anzeigst oder irgendwas mit den Informationen machst, kann es sich ja eh wieder geändert haben. :freak:

Re: FTP Prüfen ob Datei vorhanden ist

Verfasst: 11.06.2014 12:31
von Amor_2001
Genau darum geht es ja, zu prüfen ob zu einem bestimmten Zeitpunkt jeweils bestimmte Dateien vorhanden sind.

Re: FTP Prüfen ob Datei vorhanden ist

Verfasst: 11.06.2014 13:03
von NicTheQuick
Naja, gut. Aber wie schnell wechseln die denn. Und wer oder was ändert den FTP außerdem? Vielleicht kann man ja mal von der anderen Seite an das Problem ran gehen.