Qt5.5中使用QFtp类
在Qt5中使用QFtp类
从 Qt5 之后,Qt Network 发生了很大的变化,Qt5已经废除 QFtp 和 QUrlInfo 类,改用 QNetworkAccessManager助手中关于此部分描述如下:
The QFtp and QUrlInfo classes are no longer exported. Use QNetworkAccessManager instead. Programs that require raw FTP or HTTP streams can use the Qt FTP and Qt HTTP compatibility add-on modules that provide the QFtp and QHttp classes as they existed in Qt 4.
使用 QNetworkAccessManager 可以实现 Ftp 的上传/下载功能,但有些原本 QFtp 有的功能 QNetworkAccessManager 却没有提供,例如:list、cd、remove、mkdir、rmdir、rename 等。这种情况下,就不得不使用 QFtp,值得庆幸的是 QFtp 一直在维护,只需要下载源码自行编译即可使用。
1.下载QFtp源码
从 GitHub 下载 QFtp:
或者使用命令下载 :
git clone https://github.com/qtproject/qtftp
2.编译源码
如图用QTCreator打开项目。
编译动态库,静态库
修改qtftp\src\qftp\ftp.pro文件
将原来的两句CONFIG修改为:
CONFIG += static
CONFIG += shared
然后编译编译完成后会在构建目录\lib\目录下生给予成我们需要的动态库静态库文件。
3.部署编译好的库
本文使用的是Windows下Qt5.5.1,安装目录是D:\Qt\Qt5.5.1
3.1将动态库(.dll文件)拷贝至D:\Qt\Qt5.5.1\5.5\mingw492_32\bin目录下
3.2将静态库(.a文件)及.prl文件 拷贝至\Qt\Qt5.5.1\5.5\mingw492_32\lib目录下
3.3将构建目录下/include/ 目录下的 QtFtp文件夹拷贝至\Qt\Qt5.5.1\5.5\mingw492_32\include目录下
3.4将\qtftp\src\qftp目录下的两个头文件qftp.h和qurlinfo.h拷贝至\Qt\Qt5.5.1\5.5\mingw492_32\include\QtFtp 目录下
3.4.1在该目录下创建一个文件QFtp注意没有扩展名
3.4.2用记事本打开QFtp文件,并且在其中写上#include”qftp.h”
5.5 将构建目录下文件 \mkspecs\modules-inst\qt_lib_ftp.pri 拷贝至\Qt\Qt5.5.1\5.5\mingw492_32\mkspecs\modules目录
4.使用编译好的库,在项目的 .pro文件添加
QT += ftp
即可使用QFtp类模块功能