背景
使用 QNetworkAccessManager 可以实现 Ftp 的上传/下载功能,但它没有提供例如list、cd、remove、mkdir、rmdir、rename 等功能。这种情况下,我们可以使用QFtp,需要下载源码、编译并处理一些坑。
下载
从 GitHub 下载 QFtp:
编译
- 修改 qftp/qftp.pro,删除最后一行,module_qtftp_tests。不然编译会有错误,这个是测试子项目,暂时去除,先编译使用。
- 修改 qftp/src/qftp/qftp.h 第47行 #include <QtFtp/qurlinfo.h> => #include <qurlinfo.h>
- 修改 qftp/src/qftp/qftp.pro 第4,5行的+,-号互换,生成*.dll
- 修改第4行为 CONFIG += staticlib,生成.lib和.prl
用qtcreator打开qftp/qftp.pro,编译生成库文件。
放入QT5安装目录中
我以Qt5.5.1为例说明,其它版本类似
- 将 Qt5Ftpd.lib、Qt5Ftp.lib、Qt5Ftpd.prl、Qt5Ftp.prl 拷贝至 D:\Qt\Qt5.5.1\5.5\msvc2010\lib。
- 将Qt5Ftpd.dll、Qt5Ftp.dll 拷贝至D:\Qt\Qt5.5.1\5.5\msvc2010\bin。
- 将qftp.h、qurlinfo.h 拷贝至 D:\Qt\Qt5.5.1\