QFtp出现问题。我想从服务器上下载一行一行(8个字节)的.txt文件,因此我编写了以下代码,但它不起作用。
文件“ actions.txt”是在folder1目录中创建的。我可以在客户端看到它的大小。但是文件没有被写入。我收到一个空文件。

QFile* actionFile = new QFile("action.txt");
QFtp *ftp = new QFtp(parent);

void Dialog::getActionFile()
{
    actionFile->open(QIODevice::WriteOnly);
    ftp->connectToHost("mydomain.de");
    ftp->login("user", "pw");
    ftp->cd("folder1");
    ftp->get("action.txt",actionFile);
    ftp->close();
    actionFile->close();
}


提前致谢。

最佳答案

QFtp的几种方法的文档说:


  该函数不会阻塞并立即返回。该命令是
  计划,并且其执行是异步执行的。功能
  返回由commandStarted()传递的唯一标识符,然后
  commandFinished()


因此,您需要等待适当的信号发出。

请注意,您也可以使用QNetworkRequest来请求整个ftp URL(我想甚至在URL中包含用户名和密码)都可以下载文件。

09-06 18:09