Prüfen ob Ordner auf FTP-Server existiert!!

Alles rund um die Programmierung mit Qt
Antworten
flomll
Beiträge: 9
Registriert: 31. Juli 2009 13:29

Prüfen ob Ordner auf FTP-Server existiert!!

Beitrag von flomll »

Hallo Leute,

ich schreibe an einem FTP-Client Programm. Doch jetzt stehe ich vor dem Problem, wie ich prüfen kann ob ein Ordner auf dem Server bereits existiert order nicht. Auf der Lokalen Festplatte geht das wunderbar mit QDir.

Code: Alles auswählen

QDir dir("/Irgendwas/und/so");
if(dir.exsists())
{
    // write code here...
}
Doch diese Funktion unterstütz der QFtp nicht. Habt ihr da eine Lösung?
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Beitrag von pfid »

franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Mit QFtp::list das "Irgendwas/und" auflisten, und schauen ob ein Verzeichnis "so" existiert?
Oder wenn du reingehen willst gleich ein cd() und im SIGNAL commandFinished prüfen, ob alles klar ging.
MiKla
Beiträge: 134
Registriert: 29. Juli 2007 15:29

Beitrag von MiKla »

Wie wäre es mit

Code: Alles auswählen

int QFtp::list ( const QString & dir  = QString() )
und die Liste durchgehen und schauen ob Directory vorhanden ist?

Michael

edit:
viel zu spät :-(
flomll
Beiträge: 9
Registriert: 31. Juli 2009 13:29

Beitrag von flomll »

Danke erst mal an alle. Hier bekommt man so schnell Antworten. Das ist wirklich toll! :D
franzf hat geschrieben:...
Oder wenn du reingehen willst gleich ein cd() und im SIGNAL commandFinished prüfen, ob alles klar ging.
Diese Lösung gefällt mir schon sehr gut. Jedoch arbeitet das ganze ja asynchron. Deshalb kann ich dann nicht:

Code: Alles auswählen

cd()
put()
gleich hintereinander durchführen. Denn es könnte ja sein, dass zu dieser Zeit das commandFinished noch nicht ausgeführt wurde.

Da müsste ich dann darauf warten oder? Gibt es vielleicht auch eine andere Lösung dafür außer Zeit tot zu schlagen?
MiKla
Beiträge: 134
Registriert: 29. Juli 2007 15:29

Beitrag von MiKla »

Das wäre dann die andere Lösung, mit QFtp::list() nachauen ob das Verzeichnis da ist, oder?

Michael
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

flomll hat geschrieben:Diese Lösung gefällt mir schon sehr gut. Jedoch arbeitet das ganze ja asynchron. Deshalb kann ich dann nicht:

Code: Alles auswählen

cd()
put()
gleich hintereinander durchführen. Denn es könnte ja sein, dass zu dieser Zeit das commandFinished noch nicht ausgeführt wurde.
Deshalb bekommst du ein SIGNAL(commandFinished(int,bool)) geschickt. merk dir in deiner Klasse die ID für den letzten cd(), dann kannst du im entsprechenden SLOT dieses command eindeutig identifizieren. Der bool sagt dir, ob es glatt ging. falls false -> mkdir, falls true -> put().
Ist in jedem Fall schneller als sich alle SIGNAL senden zu lassen, bis man erkennt dass das Verzeichnis nicht existiert (Die Variante mit list()).
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Beitrag von pfid »

Michael.Klank hat geschrieben:Das wäre dann die andere Lösung, mit QFtp::list() nachauen ob das Verzeichnis da ist, oder?

Michael
http://doc.qt.nokia.com/4.5/qftp.html#list
ist genauso asynchron ;)
Antworten