Qt5编译使用QFtp


使用 QNetworkAccessManager 可以实现 Ftp 的上传/下载功能(参考:Qt之FTP上传/下载),但有些原本 QFtp 有的功能 QNetworkAccessManager 却没有提供,例如:list、cd、remove、mkdir、rmdir、rename 等。这种情况下,就不得不使用 QFtp,值得庆幸的是 QFtp 一直在维护,只需要下载源码自行编译即可使用。

 

  • 简述
  • QFtp
    • 下载
    • 配置
    • 使用
    • QFtp

      下载

      从 GitHub 下载 QFtp:

      https://github.com/qt/qtftp

      或者使用命令下载 :

      Git clone https://github.com/qtproject/qtftp

      完成之后,可以看到 qtftp 中包含源码及示例。

      这里写图片描述

      配置

      下面,以 MSVC为例。

      打开 qtftp.pro,将默认配置:

      CONFIG += static 
      CONFIG -= shared

      改为:

      CONFIG += staticlib 
      CONFIG += shared

      这样,生成 *.dll 的同时也会生成 *.lib

      编译 QFtp,完成之后会在 lib 文件夹下生成 *.lib*.dll*.prl 文件。

      这里写图片描述

      • 将 Qt5Ftpd.lib、Qt5Ftp.lib、Qt5Ftpd.prl、Qt5Ftp.prl 拷贝至 D:\Qt\Qt5.5.1\5.5\msvc2013\lib。
      • 将 Qt5Ftpd.dll、Qt5Ftp.dll 拷贝至 D:\Qt\Qt5.5.1\5.5\msvc2013\bin。
      • 将 qftp.h、qurlinfo.h 拷贝至 D:\Qt\Qt5.5.1\5.5\msvc2013\include\QtNetwork,并新建一个名为 QFtp 的文件(没有后缀名),然后用本写入#include "qftp.h"

      完成之后,就可以使用 QFtp 了。

      使用

      在 pro 中添加 QFtp 库:

      CONFIG(debug, debug|release) {
          LIBS += -lQt5Ftpd } else { LIBS += -lQt5Ftp }
      • 1
      • 2
      • 3
      • 4
      • 5
      • 1
      • 2
      • 3
      • 4
      • 5

      例如,如果要连接并登录到 FTP 服务器,这是简单的实现:

      #include <QFtp> // ... QFtp *ftp = new QFtp(parent); ftp->connectToHost("192.168.***.***", 21); // 主机:192.168.***.*** 端口号:21 ftp->login("wang", "123456"); // 用户名:wang 密码:123456 // ...
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7

      首先使用 connectToHost() 连接 FTP 服务器,然后通过 login() 登录到 FTP 服务器。登录成功之后,就可以调度其他操作(例如:list()、cd()、get()、put()、remove()、mkdir()、rmdir()、rename() 和 rawCommand())了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM