我想下载服务器中某个目录的所有文件。所以,我做:
_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。我怎样才能知道并确定下载已经完成?
您的LIST和GET命令是异步调度和执行的。当最后一个未决命令完成时,
QFtp
发出done(bool error)
信号。因此,在执行LIST命令之前,只需将一个合适的插槽连接到此信号,当所有命令都完成时,您就会收到通知。完成后不要忘记断开信号。