FTP - Verzeichnis erstellen ?
-
Hi@all
Frage: Wie kann ich prüfen ob auf dem Server das Verzeichnis existiert - wenn nicht soll es angelegt werden - wenn ja soll hineingewechselt werden ?
Codes funktionieren alle nicht ???
// Try ... Catch try { NMFTP1->ChangeDir(datadir); } catch() { NMFTP1->MakeDirectory(datadir); NMFTP1->ChangeDir(datadir); } ... // If ... Then if(! NMFTP1->ChangeDir(datadir)); { NMFTP1->MakeDirectory(datadir); NMFTP1->ChangeDir(datadir); } ... //On Failure void __fastcall TUploadForm::NMFTP1Failure(bool &Handled, TCmdType Trans_Type) case cmdChangeDir: StatusBar1->SimpleText = "ChangeDir failure"; NMFTP1->MakeDirectory(datadir); NMFTP1->ChangeDir(datadir); break; ... //--------
Thx@all
-
Was konkret heisst "funktionieren alle nicht"?
-
Hi@Jansen
Also ich starte FTP .
Dann soll er ins Verzeichnis(datadir)wechseln .
Ist es nicht vorhanden kommt eine Fehlermeldung .
Also soll er es erstellen und rein wechseln .Andersrum .
Ich starte FTP .
Er soll ein Verezichnis (datadir) erstellen .und anschliessen rein wechseln .
Ist das verezichnis jedoch bereits vorhanden kommt eine Fehlermeldung .Das ganze soll zur Laufzeit geschehen .Ohne des der anwender sieht was gerade passiert - also ohne Fehlermeldung wie: Verzeichnis exiert nicht oder Verzeichnis kann nicht erstellt werden .
Das Programm soll eben selbstständig prüfen ob es was machen kann oder nicht und entsprechend reagieren .
Also, wenn verzeichnis da ->dann rein wechseln ansonsten erst erstellen und dann reinwechseln .
Bzw. Verzeichnis erstellen, wenn schon da dann eben gleich reinwechseln .Hoffe verständisvoll erklärt zu haben
Thx@all
-
Das alles war mir eigentlich ziemlich klar. Ich wollte wissen, was an deinem Beispielcode genau nicht funktioniert.
-
Hi@Jansen
Sorry - hab´s wohl falsch verstanden .
Also das Problem ist, das ich immer eine Fehlermeldung bekomme.
Z.Bsp. 550 File exists oder 550 File Not ExistsDas soll aber der User nicht so sehen, sondern es soll im Hintergrund übergangen werden .
Ja, an meinem Code ??? Das ist eben das Problem - es kommt keine eindeutige BCB Fehlermeldung - nur soviel er tuts eben nicht .
if(!NMFTP1->ChangeDir(datadir)) { NMFTP1->MakeDirectory(datadir); NMFTP1->ChangeDir(datadir); }
[C++ Fehler] upload.cpp(32): E2109 Kein zulässiger Typ
und bei
void __fastcall TUploadForm::NMFTP1Failure(bool &Handled, TCmdType Trans_Type) case cmdChangeDir: NMFTP1->MakeDirectory(datadir); NMFTP1->ChangeDir(datadir); break; ...
wenn ich ChangeDir aufrufe und es gibt dieses Verzeichnis nicht - wird OnFailure aufgerufen - da soll er es denn erstellen und anschließend hineinwechseln .
Das Erstellen funktioniert zwar , aber er wechselt nicht hinein - sondern bringt immernoch die Fehlermeldung 550 File Not ExistIch weiß nicht wie ich´s noch erklären soll .
Hoffe Ihr könnt mir helfen.Thx@all
-
Hi@Jansen
Hab´s rausbekommen - Fehler lag natürlich bei mir .
try { NMFTP1->ChangeDir(datadir); } catch(FTPException *e) { NMFTP1->MakeDirectory(datadir); NMFTP1->ChangeDir(datadir); }
Hatte das Sternchen * bei der Catch-Anweisung vergessen .