FTP Prüfen ob Datei vorhanden ist

Für allgemeine Fragen zur Programmierung mit PureBasic.
Amor_2001
Beiträge: 75
Registriert: 14.12.2011 19:20

FTP Prüfen ob Datei vorhanden ist

Beitrag 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
Benutzeravatar
Kiffi
Beiträge: 10725
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: FTP Prüfen ob Datei vorhanden ist

Beitrag von Kiffi »

Benutzeravatar
Bisonte
Beiträge: 2476
Registriert: 01.04.2007 20:18

Re: FTP Prüfen ob Datei vorhanden ist

Beitrag 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.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Amor_2001
Beiträge: 75
Registriert: 14.12.2011 19:20

Re: FTP Prüfen ob Datei vorhanden ist

Beitrag 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?
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8837
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: FTP Prüfen ob Datei vorhanden ist

Beitrag 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.
Amor_2001
Beiträge: 75
Registriert: 14.12.2011 19:20

Re: FTP Prüfen ob Datei vorhanden ist

Beitrag 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?
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8837
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: FTP Prüfen ob Datei vorhanden ist

Beitrag 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:
Amor_2001
Beiträge: 75
Registriert: 14.12.2011 19:20

Re: FTP Prüfen ob Datei vorhanden ist

Beitrag von Amor_2001 »

Genau darum geht es ja, zu prüfen ob zu einem bestimmten Zeitpunkt jeweils bestimmte Dateien vorhanden sind.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8837
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: FTP Prüfen ob Datei vorhanden ist

Beitrag 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.
Antworten