Скачать каталог с QFtp
Я хочу скачать все файлы каталога на сервере. Итак, я делаю:
_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);
}
}
Моя проблема состоит в том, чтобы знать, когда загрузка полностью завершена, потому что я не знаю, сколько файлов находится в каталоге, и я не знаю идентификатор последней загрузки. Как я могу узнать и убедиться, что загрузка завершена?
1 ответ
Решение
Ваши команды LIST и GET планируются и выполняются асинхронно. Когда последняя ожидающая команда завершена QFtp
испускает done(bool error)
сигнал. Так что просто подключите подходящий слот к этому сигналу, прежде чем выполнять команду LIST, и вы получите уведомление, когда все ваши команды будут завершены. Не забудьте отключить сигнал, когда закончите.