我实际上想从ftp服务器上获得最新的文件。为此,我目前正在使用QFtp访问服务器并检索我所需的内容。
这就是我所做的(就像每3分钟一次):
所以它起作用了。但是它真的很慢,因为服务器上有数千个文件,每次我都验证每个文件的日期。例如,当我发现一个文件太旧时,可以中止list()命令吗?或者还有其他更明智的方法来加快这一过程?
发布于 2014-05-12 09:50:06
是的,有一种方法可以中止长时间播放的命令。当您调用QFtp::list()时,它将在Ftp服务器上启动执行命令,如果命令找到一个条目,QFtp就会发出QFtp::listInfo(const QUrlInfo &)信号。您可以处理该信号,并检查QUrlInfo::lastModified()返回时间是否太长。如果是,您可以调用QFtp::abort()函数来中止list命令在服务器上的执行。下面是示例代码:
建立连接以处理ftp信号
connect(ftp, SIGNAL(listInfo(const QUrlInfo &)),
this, SLOT(onNewEntry(const QUrlInfo &)));listInfo信号处理槽的实现:
void MyFtp::onNewEntry(const QUrlInfo &url)
{
// If url.lastModified() is less than some time
// ftp->abort();
}https://stackoverflow.com/questions/23605597
复制相似问题