我想下载服务器中目录的所有文件。所以,我这样做:
_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);
}
}
我的问题是知道下载完全完成的时间,因为我不知道目录中有多少文件,而且我不知道最后获取的 id / em>的。我如何知道并确保下载已完成?
答案 0 :(得分:0)
您的LIST和GET命令是异步调度和执行的。当最后一个待处理命令完成时QFtp
发出done(bool error)
信号。因此,在执行LIST命令之前,只需将一个合适的插槽连接到此信号,您将在所有命令完成后收到通知。完成后不要忘记断开信号。