1
我想下载服务器中目录的所有文件。所以,我做的:使用QFtp下载目录
_ftp->list("myDirectory/");
我连接信号列表信息,和我实现这样的插槽:
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);
}
}
我的问题是要知道什么时候下载全部完成,因为我不知道目录中有多少个文件,我不知道ID的最后得到。我如何知道并确保下载已完成?
在计划第一个GET命令之前,LIST命令不可能完成吗?在这种情况下,会发出'done'信号,而下载没有完成,不是吗? – federem
我只是快速浏览了QFtp的源代码,看起来像在处理LIST命令时触发listinfo()信号。这意味着您的on_listInfo()插槽将被调用,并且GET命令将在LIST命令完成之前排队等待所有目录条目,即此时所有GET命令都将在队列中,并且done()信号将不会直到这些处理完成。 –