• 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:QtQt5.5.15.5msvc2013lib。
        • 将 Qt5Ftpd.dll、Qt5Ftp.dll 拷贝至 D:QtQt5.5.15.5msvc2013in。
        • 将 qftp.h、qurlinfo.h 拷贝至 D:QtQt5.5.15.5msvc2013includeQtNetwork,并新建一个名为 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())了。

  • 相关阅读:
    Codeforces 615D Multipliers (数论)
    第十二届北航程序设计竞赛决赛网络同步赛 J题 两点之间
    ZSTU 4248 KI的目标(dfs)
    POJ2546 Circular Area(计算几何)
    HDU-ACM“菜鸟先飞”冬训系列赛——第7场 H
    Codeforces 761C Dasha and Password(枚举+贪心)
    Codeforces 761D Dasha and Very Difficult Problem(贪心)
    Datastructure
    GDB调试
    GCC操作
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/6423087.html
Copyright © 2020-2023  润新知