1

我想下载服务器中一个目录的所有文件。所以,我这样做:

_ftp->list("myDirectory/");

我连接了信号 listInfo,并像这样实现了插槽:

void manageFTP::on_listInfo(QUrlInfo info) 
{
    if (!info.isDir())
    {
        QString remoteFile= "remote";
        QFile *file = new QFile(info.name());
        if (file ->open(QIODevice::ReadWrite))
            _ftp->get(remoteFile, file);
    }
}

我的问题是要知道下载何时完全完成,因为我不知道目录中有多少文件,也不知道最后一个get的id。我如何知道并确保下载已完成?

4

1 回答 1

0

您的 LIST 和 GET 命令是异步调度和执行的。当最后一个挂起的命令完成时QFtp会发出一个done(bool error)信号。因此,在执行 LIST 命令之前,只需将一个合适的插槽连接到此信号,当所有命令完成时,您将收到通知。完成后不要忘记断开信号。

于 2013-07-21T19:43:40.957 回答