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()信號將不會直到這些處理完成。 –