国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Qt之QFtp

2019-11-14 09:05:22
字體:
來源:轉載
供稿:網友

一、使用windows本機搭建好FTP服務器

參照:windows如何搭建FTP服務器

搭建好服務器是關鍵,搭建完之后才有下面的操作。
ftp->connectToHost("192.168.0.104", 21);  // 主機:192.168.0.104 端口號:21這個192.168.0.104是本機ip地址,本機ip地址如果變動了需要重新按照搭建服務器的過程設定服務器的ip地址可以在瀏覽器里輸入ftp://192.168.0.104/然后回車看下能否打開下面是我的服務器的本地物理路徑

二、實現FTP下載功能和顯示服務器文件信息

#include "dialog.h"#include "ui_dialog.h"#include <QDebug>Dialog::Dialog(QWidget *parent) :    QDialog(parent),    ui(new Ui::Dialog){    ui->setupUi(this);    ftp = new QFtp(this);    connect(ftp, SIGNAL(commandFinished(int,bool)),this, SLOT(slotftpCommandFinished(int,bool)));    connect(ftp, SIGNAL(listInfo(const QUrlInfo &)),this, SLOT(slotShowList(const QUrlInfo &)));    ftp->connectToHost("192.168.0.111", 21);  // 主機:192.168.0.111 端口號:21    ftp->login("wang", "123456");  // 用戶名:wang 密碼:123456}Dialog::~Dialog(){    delete ui;}void Dialog::on_downButton_clicked()//下載{    file = new QFile("d:/main.cpp");    if (!file->open(QIODevice::WriteOnly))    {        file->remove();        delete file;        file = NULL;    } else {        ftp->get("main.cpp", file);  //下載服務器的main.cpp    }}void Dialog::slotftpCommandFinished(int, bool error){    if (ftp->currentCommand() == QFtp::ConnectToHost)    {        if (error)        {        }        return;    }    else if (ftp->currentCommand() == QFtp::Login)    {    }    else if (ftp->currentCommand() == QFtp::Get)    {        if (error)        {            file->close();            file->remove();        }        else        {            file->close();//核心代碼,必不可少        }        delete file;    }    else if (ftp->currentCommand() == QFtp::List)    {    }}void Dialog::on_listButton_clicked(){    ftp->list();//對于找到的每個目錄條目,都會發出 listInfo()信號}void Dialog::slotShowList(const QUrlInfo &urlInfo){    qDebug() << urlInfo.name() << urlInfo.size() << urlInfo.owner() << urlInfo.group()             << urlInfo.lastModified().toString("MMM dd yyyy") << urlInfo.isDir();}注意事項:1、很多人下載文件失敗,是由于file->open()了,但是下載完之后,file沒有close,但是由于ftp->get()又是異步的,不能在調用之后立馬將file關閉所以需要 connect(ftp,SIGNAL(commandFinished(int,bool)),this,SLOT(slotftpCommandFinished(int,bool))); 然后在槽函數內的elseif(ftp->currentCommand()==QFtp::Get)這個分句內將file關閉。2、ftp->list()調用之后,對于找到的每個文件和目錄,都會發出 listInfo()信號

三、QFtp的一些其他功能

在連接并登錄服務器之后才能進行下列操作1、實現文件上傳,此時的file不需要打開 file=newQFile("d:/main.cpp"); ftp->put(file,"main.cpp");2、創建文件夾ftp->mkdir("new_dir");3、刪除文件/目錄remove() 是刪除文件,rmdir() 則是刪除目錄。4、切換工作目錄ftp->cd("/doc");//doc是根目錄下的文件夾5、對服務器上的文件進行重命名ftp->rename("c++","c");// c++ -> c參照博客:http://blog.csdn.net/liang19890820/article/details/53318906#comments
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 盖州市| 鹤岗市| 宁海县| 会宁县| 黄石市| 舟曲县| 巴青县| 平原县| 曲水县| 宣化县| 万盛区| 尉犁县| 台安县| 天柱县| 城步| 泰兴市| 东安县| 红河县| 合肥市| 额济纳旗| 黄大仙区| 汾阳市| 竹溪县| 叶城县| 阳高县| 宜宾市| 陵水| 青铜峡市| 内乡县| 枣强县| 呼玛县| 六枝特区| 锦州市| 鞍山市| 贡觉县| 高唐县| 北辰区| 长白| 海宁市| 苍山县| 乌兰县|