Скачать каталог с 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, и вы получите уведомление, когда все ваши команды будут завершены. Не забудьте отключить сигнал, когда закончите.

Другие вопросы по тегам