FileExists bei FTP Componente?!
-
Wie kann ich überprüfen, ob eine bestimmte Datei auf meinem FTP-Server vorhanden ist?
Ich habs versucht über FileExists. Das sah dann so aus:if(FileExists(IdFTP1 ==true)
{
Application->Terminate();
}Jedoch komme ich da nicht weiter. Was muss hinter IdFTP1 stehen? Ich hatte eigentlich gedacht, dass ich da jetzt ein Verzeichnis und eine Datei eingeben kann.
Etwa so:
if(FileExists(IdFTP1->Path\\datei1 ==true)
{
Application->Terminate();
}Vielen Dank schonmal für eure Hilfe!!!!!
-
Hallo erstmal.... schrieb:
Was muss hinter IdFTP1 stehen?
Eine schließende runde Klammer.
-
Hallo,
benutz' mal bitte die Code-Tags wenn du Code postest... Augenkrebs ist schwer heilbar
Bei der if-Bedingung fehlt 'ne Klammer.
Ich hatte eigentlich gedacht, dass ich da jetzt ein Verzeichnis und eine Datei eingeben kann.
Irgendwas denken hilft nicht, das habe ich lange probiert. Schau dir am Besten die Eigenschaften von TIdFTP im Objektinspektor an -
dann wird vielleicht klarer, wie die Komponente zu handhaben ist. Ich finde bei TidFTP keine Path-Eigenschaft...Was du mit FileExists(...) so anstellen kannst, steht in der Hilfe...
Vielleicht solltest du mal googeln, wie die Indy-FTP-Komponente zu handhaben ist!?!
MfG
-
Danke für die schnellen Antworten!
Das mit der Klammer die fehlte war weniger mein Problem. Und bei der Indy Componente finde ich auch keine möglichkeiten den Phad anzugeben. Deshalb habe ich mir was neues überlegt.
Das Programm downloadet einfach die Datei, von welcher wir die Existenz überprüfen wollen. Und wenn dabei ein Fehler passiert, wie üblich wenn die Datei nicht existiert, haben wir es
Folgender Code:
if(IdFTP1->Get(Memo1->Text,Memo1->Text,true)== FEHLER) { Application->Terminate(); }
Nur was Gibt IdFTP1->Get aus, wenn ein fehler passiert?! Das ist eigentlich das einzige problem noch
-
Das Programm downloadet einfach die Datei, von welcher wir die Existenz überprüfen wollen. Und wenn dabei ein Fehler passiert, wie üblich wenn die Datei nicht existiert, haben wir es
Und wenn die Datei existiert und einfach nur die Übertragung abbricht etc? Dann könnte man ja nochmal starten... Dazu müsste man allerdings wissen, was der Fehler war. IMHO ist die Folgerung "Datei existiert nicht" wenn sie nicht runtergeladen werden kann nicht unbedingt so geschickt.
Wenn ich mir die Dokumentation so anschaue, scheint ein FTP-Server ständig Rückmeldungen zu geben wenn ein Client eine Datei herunterlädt... Diese Meldungen auszuwerten könnte vielleicht helfen! Da ich mich mit FTP nicht weiter auskenne, war's das aber hier erstmal von meiner Seite.
MfG
-
Hat keiner eine Idee wie man das machen kann?! ^^
Bin in größter Verzweiflung xD
-
Es gibt doch zwei einfache Möglichkeiten, dass zu realisieren. Entweder Du versuchst die Datei herunterzuladen und fängst den möglicherweise auftretenden Fehler ab, oder Du holst die Dateiliste vom Server und schaust, ob die Datei dabei ist.
-
ja ich wollte das mit dem fehler abfanfen machen. ich habe oben ja schon ein codebeispiel dafür gemacht nur weiss ich nicht wie man den fehler abfängt?!
-
Kann ich Dir bei den Indykomponenten auch nicht sagen. Eventuell ist das Ereignis OnStatus dafür geeignet. Ansonsten eben die übliche Vorgehensweise mittels eines try-catch-Blockes.
-
Hab das problem auch gerade gehabt.
es gibt noch die möglichkeit mit FileFSize
idFTP.FileSize( filname);
liefert -1 wenn die datei nicht da ist...
-
Sorry vertipper..
es gibt noch die möglichkeit mit Size
idFTP.Size( filename);
liefert -1 wenn die datei nicht da ist...