使用Qt';带FTP服务器的QDirIterator

使用Qt';带FTP服务器的QDirIterator,qt,ftp,qdir,Qt,Ftp,Qdir,(使用Qt4.7)我有一个函数,需要用户输入一个目录名,然后在FTP服务器上按该名称循环遍历目录中的文件。ftp地址是恒定的,因此我将其硬编码。到目前为止,我有: QString dir_name = /*whatever the user inputs*/; QString source = "ftp://username:password@ftp.myftpaddress.com/" + dir_name + "/"; QDirIterator it(source, QDirIterator

(使用Qt4.7)我有一个函数,需要用户输入一个目录名,然后在FTP服务器上按该名称循环遍历目录中的文件。ftp地址是恒定的,因此我将其硬编码。到目前为止,我有:

QString dir_name = /*whatever the user inputs*/;
QString source = "ftp://username:password@ftp.myftpaddress.com/" + dir_name + "/";
QDirIterator it(source, QDirIterator::NoIteratorFlags);

while(it.hasNext())
{
  //do things with each individual file...
}
然而,当我运行这个时,它从未进入循环。我加入了print语句来帮助调试,它一直说
it
引用的目录是空的,尽管它不是空的。我试着简单地将
source
的结果复制粘贴到浏览器中,结果是正确的。我以前使用过FTP服务器和QDirIterator,但从未一起使用过,我需要做些什么才能让它正常工作

我以前使用过FTP服务器和QDirIterator,但从未一起使用过,我需要做些什么才能让它正常工作

没什么特别的,只是因为QDirIterator可以处理本地文件,所以它不会工作。它本身不支持网络驱动程序。您需要自己处理迭代


很抱歉,这是个糟糕的消息。

QDir只适用于本地文件/操作系统透明映射到文件系统中的任何内容。在这种情况下,还有其他方法吗?我已经尝试了一段时间来解决这个问题,我也尝试过使用QFtp来访问它,但它仍然是空的QNetworkAccessManager。在UI应用程序中,使用阻塞API操作远程主机并不是很有用。