QT5之后官方去除了QFtp,但仍可以按照网上的方法自行编译,这里不赘述。
前几日用QFtp自行写了客户端和服务端进行交互,发现客户端调用list()函数的时候,无法获取文件的目录和名字等相关信息,其他的操作,上传下载什么的都正常。
起初以为是服务端代码有问题,于是尝试用 FileZilla 连接,发现连接上后功能一切正常。
上网找了许久未果,直到看到了一个网友的评论。
ChampagneYo :原因是QFtp类里面的parseDir函数的正则表达式与FTP服务器类型不同,需要修改这个类。
于是仔细翻看客户端的QFtp的相关函数,发现果然如此,QFtp并没有实现windows上的正则表达式,如下:
bool QFtpDTP::parseDir(const QByteArray &buffer, const QString