Poco之ftp目录切换与创建
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");
}
}
}
Poco之ftp目录切换与创建的更多相关文章
- 遍历FTP目录及下载
操作ftp,直接在main方法中即可操作. 例1:遍历ftp目录中的文件 public static void main(String[] args) throws IOException { FTP ...
- Linux下wget下载整个FTP目录(含子目录)--转载
wget -nH -m --ftp-user=your_username --ftp-password=your_password ftp://your_ftp_host/* 解释:-nH:不创建以主 ...
- linux ftp虚拟用户的创建
学习目标: 匿名用户的登录,添加用户的登录,虚拟用户的创建. 虚拟用户的创建: 1.安装:yum -y install vsftpd 服务端 yum -y install ftp ...
- 递归删除本地目录和ftp目录
本地目录: void CAutoDelete::DoRecursionLocalDelete(CString& localDirectory) { CFileFind finder; CStr ...
- Linux下添加FTP账号和服务器、增加密码和用户,更改FTP目录
1. 启动VSFTP服务器 A:cenos下运行:yum install vsftpd B. 登录Linux主机后,运行命令:”service vsftpd start” C. 要让FTP每次开机 ...
- Linux之目录的操作(创建、移动、改名、删除、复制)
.创建 mkdir [dirname] //创建单个目录 mkdir -p newdir1/newdir2/newdir3 //递归创建多级目录 mkdir dir1/dir2/newdir3 //在 ...
- Windows 下目录切换以及挂载小技巧
Windows 下目录切换以及挂载小技巧 一.前言: 作为几年的 Linux 老用户,再购买了一款新的本本只支持 Windows(主要是Linux下的驱动)操作系统后,加之发现 Windows 提供 ...
- Linux课程---5、常用文件命令和目录命令(创建文件命令)
Linux课程---5.常用文件命令和目录命令(创建文件命令) 一.总结 一句话总结: touch file1 1.管道符|有什么用? 将前一个命令的结果作为后一个命令的输入:比如查看文件前3行:ca ...
- 【转】Linux下添加FTP账号和服务器、增加密码和用户,更改FTP目录
转自:http://blog.csdn.net/cloudday/article/details/8640234 1. 启动VSFTP服务器 A:cenos下运行:yum install vs ...
随机推荐
- iOS 火星坐标相关整理及解决方案汇总(转)
这几天在处理定位相关的代码,彻彻底底的被火星坐标恶心到了. 恶心列表 从 CLLocationManager 取出来的经纬度放到 mapView 上显示,是错的! 从 CLLocationManage ...
- 【DB】HBase的基本概念
一 Hbase是个啥东东? 在说Hase是个啥家伙之前,首先我们来看看两个概念.面向行存储和面向列存储.面向行存储.我相信大伙儿应该都清楚,我们熟悉的RDBMS就是此种类型的.面向行存储的数据库主要 ...
- linux 系统磁盘分区之fdisk
对于学习磁盘分区,通常学习的都是fdisk命令 当然,对于小于2TB的磁盘,我们基本上是使用fdisk命令进行分区 下面就简单介绍一下fdisk操作磁盘的基本命令和场景模拟 常用命令介绍 fdis ...
- java09 队列Queue与Deque
队列Queue与Deque. Enumeration Hashtable与Hashtable子类Properties(资源配置文件) 引用类型(强.软.弱.虚)与WeakHashMap Identit ...
- Android AlertDialog 设置setSingleChoiceItems不显示列表的原因【setMessage和setSingleChoiceItems不能同时使用】
今日写了个如题目的简单功能,结果列表不显示 无奈重写了一次代码发现setMessage和setSingleChoiceItems不能同时使用. 正确的如下: private void mobilePh ...
- 关于字符串计算size的方法比较
往往字符串需要计算size来满足UI排版的自适应的需要,而一般字符串也是放在UILabel里的. 而在计算size的方法里,一般有两种方式(deprecated的就不说了). NSString的方法 ...
- 【亲测可用】MySQL 4.1迁移到MySQL 5.0版本的中文乱码问题解决
核心:先导出结构,再导出数据. 结构最好使用myphpadmin导出.使用mysqldump导出的可能会导致一些问题. ---------------以下为转载---------------- 在生成 ...
- flexpaper 开源轻量级的在浏览器上显示各种文档的组件
FlexPaper是一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与PDF2SWF一起使用, 使在Flex中显示PDF成为可能,而这个过程并无需PDF软件环境的支持.它可以被当做Flex的库 ...
- jdbc-connect-oracle12c-pdb/cdb(jdbc连接oracle12c的pdb和cdb)
1 本文简介: 通过特意引发问题,聚焦问题,解决问题,并循序渐进 最后总结jdbc连接oracle12c中cdb和pdb的条件. 软件环境:Redhat7.1+orcacle12c 2 ...
- Angularjs2——TypeScript学习网站
https://zhongsp.gitbooks.io/typescript-handbook/content/index.html