由于QT5去除了QFTP,用QNetworkAccessManager来代替QFTP,但QNetworkAccessManager仅支持FTP的上传和下载,只好自己把QT4中的QFTP添加回QT5中,编译QFTP源码之前在网上做了很多功课,可是在把组件QFTP添加到项目编译时,报了QUrl重定义错误,所以把qurlinfo改名重编译了一下就好了,在此晒一下过程:
1.环境准备:
在win7(64)系统中安装VS2010和sp1, 然后安装QT5.5.1(qt-opensource-windows-x86-msvc2010-5.5.1.exe和qt-vs-addin-1.2.4-opensource.exe);注意需要选上QtCreator
2.下载QFtp源码包并修改
修改src\qftp中的qftp.pro文件如下图:
由于原qurlinfo.h中的QurlInfo在QT5中报重定义错误,所以这里对此文件修改,QurlInfo改成QftpUrlInfo;
修改src\qftp下的qftp.h文件中的内容,如下图
3.编译
用QtCreator编译好后,会在lib目录生成如下图的文件列表:
- 将编译好的库,部署到Qt环境中
静态库Qt5Ftp.lib、Qt5Ftpd.lib、Qt5Ftp.prl、Qt5Ftpd.prl复制到目录中C:\Qt\Qt5.5.1\5.5\msvc2010\lib,如下图:
动态库Qt5Ftp.dll和Qt5Ftpd.dll复制到目录中C:\Qt\Qt5.5.1\5.5\msvc2010\bin,如下图:
新建无后缀文件QFtp, QFtp文件用文本编辑器写入”#include “qftp.h”, 如下图:
Src\qftp目录下的qftp.h、qftpurlinfo.h、QFtp文件复制到目录中,
- 测试QFTP库
新建项目ftpTest,编译后如图:
- 分享源代码:
此过程的源码放在下面的云盘上了
链接:https://pan.baidu.com/s/1LApmOinlVDxAsnRKnHJA8A
提取码:flni
原版QFTP代码,请参考下面QT 官网链接:qt/qtftp.git - Qt 4's QFtp class for Qt 5https://code.qt.io/cgit/qt/qtftp.git/