Ich hänge hier mal den Ftp-Code an und auch die Ausgaben des qDebug() bis es nicht mehr weiter geht. Hat jemand eine Idee?
Grüße,
Willi
ftp.h
Code: Alles auswählen
#ifndef FTP_H_
#define FTP_H_
#include <QFile>
#include <QFtp>
#include <QMutex>
#include <QStringList>
#include <QThread>
#include <QUrlInfo>
class Ftp : public QFtp {
Q_OBJECT
public:
Ftp();
virtual ~Ftp();
void setUser(const QString& user) { this->user = user; }
void setPassword(const QString& password) { this->password = password; }
void setHost(const QString& host) { this->host = host; }
void setLocDir(const QString& locDir) { this->locDir = locDir; }
void setRemDir(const QString& remDir) { this->remDir = remDir; }
const QString& getUser() const { return this->user; }
const QString& getPassword() const { return this->password; }
const QString& getHost() const { return this->host; }
const QString& getLocDir() const { return this->locDir; }
const QString& getRemDir() const { return this->remDir; }
const QStringList& getErrMsg() const { return this->errmsg; }
void delErrMsg();
void getFiles();
signals:
void end();
private slots:
void listEntry(const QUrlInfo&);
void endProc(bool);
void cmdFinished(int, bool);
private:
QString user;
QString password;
QString host;
QString locDir;
QString remDir;
QStringList errmsg;
QStringList dirlist;
QString dir;
QList<QFile*> files;
QMutex sperre;
int idConnect;
int idLogin;
int idCd;
int idList;
int idGet;
int idRemove;
int idClose;
QString getStr(const int);
};
#endif /* FTP_H_ */
ftp.cpp
Code: Alles auswählen
#include <QDebug>
#include <QDir>
#include "ftp.h"
Ftp::Ftp() : QFtp() {
connect(this, SIGNAL(listInfo(const QUrlInfo&)), this, SLOT(listEntry(const QUrlInfo&)));
connect(this, SIGNAL(commandFinished (int, bool)), this, SLOT(cmdFinished(int, bool)));
connect(this, SIGNAL(done(bool)), this, SLOT(endProc(bool)));
idConnect = -1;
idLogin = -1;
idCd = -1;
idList = -1;
idClose = -1;
idGet = -1;
idRemove = -1;
}
Ftp::~Ftp() {
}
void Ftp::getFiles() {
qDebug() << "getFiles() Start";
idConnect = connectToHost(getHost());
idLogin = login(getUser(),getPassword());
idCd = cd(getRemDir());
idList = list();
idClose = close();
qDebug() << "getFiles() Stop " << getStr(idConnect) << getStr(idLogin)<< getStr(idCd)<< getStr(idList)<< getStr(idClose);
}
void Ftp::delErrMsg() {
while (!errmsg.isEmpty()) {
errmsg.takeFirst();
}
}
void Ftp::listEntry(const QUrlInfo& entry) {
qDebug() << "listEntry() Start";
if (entry.isFile()) {
QDir d(getLocDir());
QString file(d.absolutePath());
QFile* f = new QFile(d.absolutePath() + QDir::separator() + entry.name());
files.append(f);
if (f->open(QFile::WriteOnly)) {
qDebug() << "listEntry() State " << getStr(state());
idGet = get(entry.name(),f);
errmsg.append(getRemDir() + ": get " + entry.name());
idRemove = remove(entry.name());
} else {
QString xx(d.absolutePath() + QDir::separator() + entry.name());
qDebug() << "Fehler beim öffnen der lokalen Datei: " << xx;
}
} else {
}
qDebug() << "listEntry() Stop " << getStr(idGet) << getStr(idRemove);
}
void Ftp::endProc(bool err) {
if (err) {
qDebug() << "endProc() Start ERROR: " << getStr(error());
} else {
qDebug() << "endProc() Start";
}
if (hasPendingCommands()) {
qDebug() << "Es sind noch Commands da";
clearPendingCommands();
} else {
qDebug() << "Es sind KEINE Commands da";
}
QString num;
num.setNum(files.size());
errmsg.append(getRemDir() + ": " + num + " Dateien geholt");
while (!files.isEmpty()) {
QFile* f = files.takeFirst();
f->close();
delete f;
}
qDebug() << "endProc() Stop";
emit end();
}
QString Ftp::getStr(const int num) {
QString rc;
rc.setNum(num);
return rc;
}
void Ftp::cmdFinished(int id, bool err) {
if (err) {
qDebug() << "cmdFinished() Start id: " << getStr(id) << " Error: " << getStr(error());
} else {
qDebug() << "cmdFinished() Start id: " << getStr(id);
}
}
Ausgabe: (Die "Anfang run"s sind aus der aufrufenden Methode)
Anfang run!
getFiles() Start
getFiles() Stop "1" "2" "3" "4" "5"
cmdFinished() Start id: "1"
cmdFinished() Start id: "2"
cmdFinished() Start id: "3"
listEntry() Start
listEntry() Stop "-1" "-1"
listEntry() Start
listEntry() State "4"
listEntry() Stop "6" "7"
cmdFinished() Start id: "4"
cmdFinished() Start id: "5"
cmdFinished() Start id: "6" Error: "4"
endProc() Start ERROR: "4"
Es sind KEINE Commands da
endProc() Stop
Anfang run!
getFiles() Start
getFiles() Stop "8" "9" "10" "11" "12"
cmdFinished() Start id: "8"
cmdFinished() Start id: "9"
cmdFinished() Start id: "10"
listEntry() Start
listEntry() Stop "6" "7"
listEntry() Start
listEntry() State "4"
listEntry() Stop "13" "14"
cmdFinished() Start id: "11"
cmdFinished() Start id: "12"
cmdFinished() Start id: "13" Error: "4"
endProc() Start ERROR: "4"
Es sind KEINE Commands da
endProc() Stop
Anfang run!
getFiles() Start
getFiles() Stop "15" "16" "17" "18" "19"
cmdFinished() Start id: "15"
cmdFinished() Start id: "16"
cmdFinished() Start id: "17"
listEntry() Start
listEntry() Stop "13" "14"
listEntry() Start
listEntry() State "4"
listEntry() Stop "20" "21"
cmdFinished() Start id: "18"
cmdFinished() Start id: "19"
cmdFinished() Start id: "20" Error: "4"
endProc() Start ERROR: "4"
Es sind KEINE Commands da
endProc() Stop
Anfang run!
getFiles() Start
getFiles() Stop "22" "23" "24" "25" "26"
cmdFinished() Start id: "22"
cmdFinished() Start id: "23"
cmdFinished() Start id: "24"
listEntry() Start
listEntry() Stop "20" "21"
listEntry() Start
listEntry() State "4"
listEntry() Stop "27" "28"
cmdFinished() Start id: "25"
cmdFinished() Start id: "26"
cmdFinished() Start id: "27" Error: "4"
endProc() Start ERROR: "4"
Es sind KEINE Commands da
endProc() Stop
Anfang run!
getFiles() Start
getFiles() Stop "29" "30" "31" "32" "33"
cmdFinished() Start id: "29"
cmdFinished() Start id: "30"
cmdFinished() Start id: "31"
listEntry() Start
listEntry() Stop "27" "28"
listEntry() Start
listEntry() State "4"
listEntry() Stop "34" "35"
cmdFinished() Start id: "32"
cmdFinished() Start id: "33"
cmdFinished() Start id: "34" Error: "4"
endProc() Start ERROR: "4"
Es sind KEINE Commands da
endProc() Stop
Anfang run!
getFiles() Start
getFiles() Stop "36" "37" "38" "39" "40"
cmdFinished() Start id: "36"
cmdFinished() Start id: "37"
cmdFinished() Start id: "38"
listEntry() Start
listEntry() Stop "34" "35"
listEntry() Start
listEntry() State "4"
listEntry() Stop "41" "42"
cmdFinished() Start id: "39"