ist es beim FTP möglich einen Ordner auf Bewegungen zu überprüfen?
Auf einer Netzwerkfestplatte gibt es ja die Möglichkeit auf diese Events zu reagieren... Aber beim FTP glaube ich da nicht dran...
Aber vielleicht habe ich ja Glück
Sowas in der Art gibt es noch nicht. Ich habe mal damit angefangen ein FtpWatcher zu programmieren, aber der müsste theoretisch alle paar Sekunden die Verzeichnisse prüfen.
Wenn Interesse an so einem Programm besteht, dann entwickle ich es weiter.
An sowas besteht immer Interesse
Gerade wenn es um EDI geht ist sowas doch Gold wert...
Ich werde mich mal daran machen sowas zusammen zu basteln.
Vom Prinziep her stelle ich mir das so vor, dass er alle paar Sekunden zwei Ordner (1 Lokal und 1 FTP) öffnet und die enthaltenen Dateien (später dann samt Unterordner) vergleicht.
Wo ich jetzt ein Problem sehe ist, wie erkenne ich ob eine Datei umbenannt oder verschoben oder gelöscht wurde?
Du brauchst dir die Mühe nicht machen, ich bin bereits dabei sowas zu schreiben. Und ich verwende dazu meine FtpLib, weil dort wird das dann mit implementiert
Das Problem hierdran ist, dass du periodisch ALLE Ordner (rekursiv) auf dem FTP durchsuchen musst, das heißt du hast einen riesigen Overhead an Daten die übertragen werden. Dafür ist das FT-Protokoll einfach nicht ausgelegt, selbst eine Suche auf FTP ist eine langsame angelegenheit.
Naja, ich habe das Problem leider gerade aktuell
Da ich soetwas zum Auslesen für EDI-Daten benötige...
Dafür ist das FT-Protokoll einfach nicht ausgelegt, selbst eine Suche auf FTP ist eine langsame angelegenheit.
Optional halt mit PHP.
Wo FTP ist, ist nicht zwangsläufig auch PHP.
Es gibt Geräte die FTP zur Datenübertragung nutzen aber da läuft kein WebServer drauf oder aber auch einfache Datenspeicher im Netz die auch über FTP funktionieren aber eben keine WebServer sind. Demnach ist PHP da wohl nicht immer Sinnvoll.
Da es sich um einen reinen Datenaustausch und anschließende Verarbeitung der Dateien geht ist PHP für mich auch erstmal außen vor.
Wenn es sich um eine Verbindung zwischen zwei bekannten Partnern handelt, kannst du mit einer Triggerdatei arbeiten, in die du nach einem Transfer den Zeitstempel des letzten Updates reinschreibst.
--
If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch --