#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. Rational Rose 2007 &amp;Rational Rose 2003 下载及破解方法和汉化文件下载

    这么好的东西,不拿来出分享,我对不起原作者呀.可是我这里不知道作者是谁,感谢在先了. ed2k://|file|%5BIBM%E8%BD%AF%E4%BB%B6%E7%B3%BB%E5%88%97%5 ...

  2. java并发 使用ScheduledExecutor的温室控制器--thinking in java 21.7.5

    package org.rui.thread.newc; import java.text.DateFormat; import java.text.SimpleDateFormat; import ...

  3. java.lang.ClassNotFoundException: Didn't find class "*****Activity" on path: /data/app/*******.apk

    http://blog.csdn.net/lovexieyuan520/article/details/9032797/ 很多人出现了java.lang.RuntimeException: Unabl ...

  4. 在Apache Tomcat 7设置redis作为session store

    在Apache Tomcat 7设置redis作为session store  //输出tomcat控制台日志 root@ubuntu:~# cd /usr/tomcat/apache-tomcat- ...

  5. 编写Qt Designer自定义控件(一)——如何创建并使用Qt自定义控件

    在使用Qt Designer设计窗体界面时,我们可以使用Widget Box里的窗体控件非常方便的绘制界面,比如拖进去一个按钮,一个文本编辑器等.虽然Qt Designer里的控件可以满足我们大部分的 ...

  6. Android开发之”再按一次退出程序“的实现

    现在移动客户端退出程序对话框退出越来越不流行了,都开始使用连续按两次来退出,即著名的“再按一次退出程序”模式.现在就看看怎么实现的吧. @SuppressLint("HandlerLeak& ...

  7. 【Android】 onSaveInstanceState()恢复数据

    onSaveInstanceState()方法会携带一个 Bundle 类型的参数,Bundle 提供了一系列的方法用于保存数据,比如可以使用 putString()方法保存字符串,使用 putInt ...

  8. 关于调用系统照相机Activity被销毁问题解决

    <activity                  android:name=".visitplan_finish"                  android:co ...

  9. javascript进击(四)HTML DOM

    HTML DOM (文档对象模型) 什么是DOM? DOM 是 W3C(万维网联盟)的标准. DOM 定义了访问 HTML 和 XML 文档的标准. W3C 文档对象模型 (DOM) 是中立于平台和语 ...

  10. Java并发——线程安全、线程同步、线程通信

    线程安全 进程间"共享"对象 多个“写”线程同时访问对象. 例:Timer实例的num成员,即add()方法是用的次数.即Timer实例是资源对象. class TestSync ...