#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <Poco/File.h>
#include <Poco/Net/FTPClientSession.h>
#include <Poco/StreamCopier.h>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
using Poco::File;
using Poco::StreamCopier;
using Poco::Net::FTPClientSession;
int main(int argc,char **argv)
{
    std::string host="192.168.7.155";
    std::string username="anonymous";
    std::string password="anonymous";
    Poco::UInt16 port=21;

FTPClientSession ftpsession(host,port,"","");
    ftpsession.login(username,password);

bool logined=ftpsession.isLoggedIn();
    std::cout<<"ftp is logined ? "<<logined<<std::endl;

ftpsession.setWorkingDirectory("/SobeyRes/aaa/");

//get file list
    std::string str;
    std::vector<std::string> filelist;
    std::istream &ftpin = ftpsession.beginList("/SobeyRes/aaa/");//下载目录中文件列表
    while(ftpin>>str)
    {//存储文件列表
        filelist.push_back(str);
    }
    ftpsession.endList();//关闭目录下载连接

//download all file to local device
    for(size_t i=0; i!=filelist.size(); i++)
    {
        std::cout<<"cur file is: "<<filelist[i]<<"...\n";

std::ofstream file;
        file.open(filelist[i].c_str());
        //下载每个文件并存储到字符串content中
        Poco::StreamCopier::copyStream(ftpsession.beginDownload(filelist[i].c_str()), file);

ftpsession.endDownload();//关闭下载连接
    }
    ftpsession.close();//断开FTP

return 0;
}

Poco之ftp获取文件列表以及下载文件的更多相关文章

  1. 在开发框架中使用FTP辅助类上传或者下载文件,方便管理附件内容

    在有些系统应用里面,我们需要对应用服务器.数据库服务器.文件服务器进行分开,文件路径等信息存储在数据库服务器里面,但文件内容则存储在文件服务器里面,通过使用FTP进行文件的上传下载,从而实现更加高效的 ...

  2. Linux学习笔记:使用ftp命令上传和下载文件

    Linux中如何使用ftp命令,包括如何连接ftp服务器,上传or下载文件以及创建文件夹.虽然现在有很多ftp桌面应用(例如:FlashFXP),但是在服务器.SSH.远程会话中掌握命令行ftp的使用 ...

  3. 不用FTP使用SecureCRT上传下载文件,并解决rz、sz command not found异常

    使用SSH终端操作Linux/UNIX时,很多时候需要传一些文件到服务器上,或说从服务器上下载一些文件,这类文件传输动作一般使用FTP即可,但是需要架设FTP Server,每次传输不太方便,还要另外 ...

  4. 使用NSURLSession获取网络数据和下载文件

    使用NSURLSession获取网络数据 使用NSURLSession下载文件

  5. FTP文件操作之下载文件

    前面写了采用ftp上传文件,有了上传怎么能够没有下载呢?如果只有上传没有下载,那上传了也没啥用了.所以今天就跟大家一起学习学习使用ftp下载文件. 知道了怎么上传,那么下载也就变得很简单了,上传是把文 ...

  6. C#获取windows 10的下载文件夹路径

    Windows没有为“下载”文件夹定义CSIDL,并且通过Environment.SpecialFolder枚举无法使用它. 但是,新的Vista 知名文件夹 API确实使用ID定义它FOLDERID ...

  7. FTP服务器上传,下载文件

    public class FtpUtil { /** * * @param host FTP服务器地址 * @param port FTP服务器端口 * @param username FTP登录账号 ...

  8. C#实现多文件上传,写到文件夹中,获取文件信息以及下载文件和删除文件

    前台:.js //上传附件 function uploadAttachment() { if ($("#Tipbind").attr('checked')) { var ip = ...

  9. Asp.Net Web Api 2 实现多文件打包并下载文件示例源码_转

    一篇关于Asp.Net Web Api下载文件的文章,之前我也写过类似的文章,请见:<ASP.NET(C#) Web Api通过文件流下载文件到本地实例>本文以这篇文章的基础,提供了Byt ...

随机推荐

  1. cmd 控制台 提示:请求的操作须要提升!

    cmd 控制台 提示:请求的操作须要提升! 在windows7中想用route add 或相关route等命令须要以管理员身份执行,假设windows7以下没有以管理身份执行那么加入路由时候route ...

  2. Winform-CheckBox、ChecklistBox控件遍历代码

    CheckBox,是各种开发语言环境和网页中常用的控件.下面,本文给大家讲解的是C#Winform版的CheckBox.控件遍历.全选.反选实例代码.①直接引用如果窗体form中存在CheckBox控 ...

  3. SVN的配置与调试

  4. Java多线程-工具篇-BlockingQueue(转)

    前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题.通过这些高效并且线程安全的队列 类,为我们快速搭建高质量的多线程程序带来极大的 ...

  5. 动作-CCActionInterval之CCGridAction家族

    CCGrid3DAction // 作用:x轴3D反转特效 CCActionInterval *flipX3D= CCFlipX3D::create(4); //    作用:Y轴3D反转特效 CCA ...

  6. launchMode使用详解

    launchMode是很基础但是也很容易被忽视的问题,一个高性能的手机App不仅仅是代码完成的非常棒,也包括launchMode的合理使用.一个应用中,到底哪些Activity应该始终保持一个实例,哪 ...

  7. Android(java)学习笔记149:Android线程形态之 AsyncTask (异步任务)

    1. AsyncTask和Handler的优缺点比较: 1)AsyncTask实现的原理和适用的优缺点        AsyncTask是Android提供的轻量级的异步类,可以直接继承AsyncTa ...

  8. 一种通用数据采集的schema定义形式

    { "name": "凤凰金融", "notice": { "data": "attribute", ...

  9. Nexus搭建Maven服务器

    参考:http://blog.csdn.net/ichsonx/article/details/14642897 1. 为什么使用Nexus 如果没有私服,我们所需的所有构件都需要通过maven的中央 ...

  10. Java json工具类,jackson工具类,ObjectMapper工具类

    Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...