博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Poco之ftp目录切换与创建
阅读量:4315 次
发布时间:2019-06-06

本文共 3001 字,大约阅读时间需要 10 分钟。

TEMPLATE = app

QT += qml quick widgets
#LIBS += -lPocoFoundation -lPocoXML -lPocoNet
SOURCES += main.cpp \
    tnet.cpp
RESOURCES += qml.qrc
# Additional import path used to resolve QML modules in Qt Creator's code model
QML_IMPORT_PATH =
# Default rules for deployment.
include(deployment.pri)
INCLUDEPATH += $$(PocoPath)
android{
    LIBS += -L$$(PocoPath)/So -lPocoFoundation -lPocoXML -lPocoNet
}else:unix
{
    LIBS += -lPocoFoundation -lPocoXML -lPocoNet
}
HEADERS += \
    tnet.h

 

 

#include "tnet.h"

#include <QJsonObject>
#include <QString>
#include <QFile>
TNet::TNet(QObject *parent) : QObject(parent)
{
//    QJsonObject             value;
//    value.insert("op","upload");
//    value.insert("token","dsa")
//    value["cid"]            = cid;
//    value["name"]            = name;
//    value["catalog"]        = catalog;
//    value["notes"]            = notes;
//    value["tags"]            = tags;
//    value["public"]            = ispublic ? 1 : 0;
//    value["huodong"]        = activity;
//    value["jiedan"]            = compete;
//    Poco::URI purl("http://api.yiqibian.com");
//    HTTPRequest req(Poco::Net::HTTPRequest::HTTP_POST);
//    Poco::Net::HTTPClientSession session(purl.getHost(), purl.getPort());
//    Poco::Net::HTTPRequest req(Poco::Net::HTTPRequest::HTTP_POST, purl.getPath(), Poco::Net::HTTPMessage::HTTP_1_1);
//    std::cout<<session.sendRequest(req);
//    try
//    {
//        session.sendRequest(req);
//    }
//    catch(Poco::Net::NetException& ex)
//    {
//        std::cout<<"have err"<<std::endl;
//        std::cout<<"post wrong: "<<ex.displayText()<<std::endl;
//    };
}
void TNet::VisitDic(QString path)
{
    // cd"/lk/os/movdo/a1"
    QString curFtpPath="/";
    QStringList pathlist;
    pathlist=path.split("/");
    FTPClientSession client;
    client.open("192.168.7.254",21,"xprins","xprins");
    client.setWorkingDirectory("/");
    foreach(QString curpath,pathlist)
    {
        if(curpath==""||curpath=="lk")
            continue;
        try
        {
            if(curFtpPath=="/")
            {
                client.setWorkingDirectory((curFtpPath+curpath).toStdString().c_str());
                curFtpPath=(curFtpPath+curpath);
            }
            else
            {
                client.setWorkingDirectory((curFtpPath+"/"+curpath).toStdString().c_str());
                curFtpPath=(curFtpPath+"/"+curpath);
            }
        }
        catch(...)
        {
            client.setWorkingDirectory(curFtpPath.toStdString().c_str());
            client.createDirectory(curpath.toStdString().c_str());
            if(curFtpPath=="/")
            {
                curFtpPath=(curFtpPath+curpath);
            }
            else
            {
                client.setWorkingDirectory((curFtpPath+"/"+curpath).toStdString().c_str());
                curFtpPath=(curFtpPath+"/"+curpath);
            }
            client.setWorkingDirectory(curFtpPath.toStdString().c_str());
        }
    }
    QFile file("/home/jixiang/图片/13062621267520.jpg");
    if (!file.open(QIODevice::WriteOnly))
        return;
    //begin upload
    std::ostream& os=client.beginUpload("13062621267520.jpg");
    client.endUpload();
    client.close();
}

 

import QtQuick 2.4

import QtQuick.Controls 1.3
import QtQuick.Window 2.2
import QtQuick.Dialogs 1.2
import TNet 1.0
ApplicationWindow {
    title: qsTr("Hello World")
    width: 640
    height: 480
    visible: true
    TNet
    {
        id:tnet;
    }
    Rectangle
    {
        anchors.fill: parent;
        color:"black";
        MouseArea
        {
            anchors.fill: parent;
            onClicked: tnet.VisitDic("/hoho/sobey/MoVdo");
        }
    }
}

转载于:https://www.cnblogs.com/L-Arikes/p/4792521.html

你可能感兴趣的文章
mysql 将两个有主键的表合并到一起
查看>>
底部导航栏-----FragmentTabHost
查看>>
在linux中安装jdk以及tomcat并shell脚本关闭启动的进程
查看>>
apk,task,android:process与android:sharedUserId的区别
查看>>
MySQL 同主机不同数据库之间的复制
查看>>
iOS菜鸟开发 UIView,UIImageView 的点击事件
查看>>
取得GridView被隐藏列的值方法集合
查看>>
第七章例7-14
查看>>
SQL Server 维护计划实现数据库备份(Step by Step)
查看>>
VRPN 介绍及使用
查看>>
MyBatis使用懒加载mybatis-config.xml配置
查看>>
《C++ Primer》第五版课后习题解答_第六章(2)(08-15)
查看>>
c语言第五次作业
查看>>
多线程执行显示进度条的实例
查看>>
【总结】 NOIp2018考时经历记
查看>>
DIY远程控制开关(tiny6410+LED+yeelink+curl)
查看>>
SGU[130] CIrcle
查看>>
深入V8引擎-Time核心方法之win篇(1)
查看>>
指令操作码与地址码
查看>>
Bogo排序
查看>>