1
서버에있는 디렉토리의 모든 파일을 다운로드하고 싶습니다.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);
}
}
내 문제는 내가 알고하지 않기 때문에 다운로드가 완전히 끝날 때 알아야하는 것입니다 얼마나 많은 파일이 디렉토리에 있고 나는 ID가이고 마지막이 이면이됩니다. 다운로드가 완료되었는지 어떻게 알 수 있습니까?
첫 번째 GET 명령을 예약하기 전에 LIST 명령이 완료되지 않았습니까? 이 경우 다운로드가 완료되지 않은 반면 '완료'신호가 방출됩니다. 그렇지 않습니까? – federem
QFtp의 소스 코드를 살펴 보았는데 LIST 명령이 처리되는 동안 listinfo() 신호가 트리거 된 것처럼 보입니다. 즉, LIST 명령이 완료되기 전에 on_listInfo() 슬롯이 호출되고 GET 명령이 모든 디렉토리 항목에 대해 대기합니다. 즉, 모든 GET 명령이 이번까지 대기열에 있고 done() 신호는 대기열에 저장되지 않습니다. 처리 될 때까지 방출됩니다. –