需要实现一个很简单的任务,就是登陆到服务器上,然后往指定目录里面传文件。
代码实现是不管服务器上是否已经存在目标文件夹,一律使用mkdir来创建一遍,
本来以为在文件夹已存在的情况下最多是返回创建文件夹失败,之后的cd命令应该能够正确执行,
但实际情况是当服务器上存在指定文件夹时,执行到mkdir后就不能继续往下走了。
其他ftp命令也会存在这样的问题吧?
在google上和论坛里搜了下,没找到相关文章,大概是我选的关键字没选好。
我想请教一下像这种异步命令的异常应该怎么处理?先行谢过
int main(int argc, char *argv[])
{
QFtp *ftp;
mFtp b;
ftp = new QFtp();
ftp->connectToHost("127.0.0.1", 21);
ftp->login("user","passwd");
QObject::connect(ftp, SIGNAL(commandFinished(int, bool)),&b, SLOT(cmd(int, bool)));
ftp->mkdir("tmp"); // 服务器之前存在tmp文件夹的话接下来的cd命令无法成功执行
ftp->cd("tmp");
QCoreApplication a(argc, argv);
return a.exec();
}
slot函数:
class mFtp: public QObject
{
Q_OBJECT
public slots:
void cmd(int id, bool result)
{
printf("\nGot cmd result from %d:%d", id, result);
}
};