/// <summary>
/// Ftp
/// </summary>
public class FtpFileOperation
{
private string _ftpIp;
private string _ftpUser;
private string _ftpPassword;
private FtpWebRequest _ftpWebRequest; public FtpFileOperation(string ftpIp, string ftpUser, string ftpPassword)
{
_ftpIp = ftpIp;
_ftpUser = ftpUser;
_ftpPassword = ftpPassword;
} /// <summary>
/// Connect
/// </summary>
/// <param name="ftpUrl"></param>
/// <returns></returns>
public bool Connect(string ftpUrl)
{
try
{
_ftpWebRequest = (FtpWebRequest)FtpWebRequest.Create(ftpUrl);
_ftpWebRequest.UseBinary = true;
_ftpWebRequest.Credentials = new NetworkCredential(_ftpUser, _ftpPassword);
return true;
}
catch (Exception ex)
{
Logger.Error(ex);
return false;
}
} /// <summary>
/// Download
/// </summary>
/// <param name="ftpFilePath"></param>
/// <param name="savePath"></param>
/// <returns></returns>
public bool Download(string ftpFilePath,string savePath)
{
try
{
if (Connect(String.Format("ftp://{0}/{1}", _ftpIp, ftpFilePath)))
{
FtpWebResponse ftpResponse = (FtpWebResponse)_ftpWebRequest.GetResponse();
Stream ftpStream = ftpResponse.GetResponseStream();
byte[] buffer = new byte[];
int readCount = ;
FileStream outputStream = new FileStream(savePath, FileMode.Create);
readCount = ftpStream.Read(buffer, , buffer.Length);
while(readCount > )
{
outputStream.Write(buffer, , readCount);
readCount = ftpStream.Read(buffer, , buffer.Length);
}
ftpStream.Close();
outputStream.Close();
ftpResponse.Close();
return true;
}
}
catch (Exception ex)
{
Logger.Error(ex);
}
return false;
}
}

C# FTPHelper工具类的更多相关文章

  1. 【转载】C#工具类:FTP操作辅助类FTPHelper

    FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样.可以通过C#中的FtpWebRequest类.NetworkCredential类.We ...

  2. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  3. Android—关于自定义对话框的工具类

    开发中有很多地方会用到自定义对话框,为了避免不必要的城府代码,在此总结出一个工具类. 弹出对话框的地方很多,但是都大同小异,不同无非就是提示内容或者图片不同,下面这个类是将提示内容和图片放到了自定义函 ...

  4. [转]Java常用工具类集合

    转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...

  5. js常用工具类.

    一些js的工具类 复制代码 /** * Created by sevennight on 15-1-31. * js常用工具类 */ /** * 方法作用:[格式化时间] * 使用方法 * 示例: * ...

  6. Guava库介绍之实用工具类

    作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文是我写的Google开源的Java编程库Guava系列之一,主要介 ...

  7. Java程序员的日常—— Arrays工具类的使用

    这个类在日常的开发中,还是非常常用的.今天就总结一下Arrays工具类的常用方法.最常用的就是asList,sort,toStream,equals,copyOf了.另外可以深入学习下Arrays的排 ...

  8. .net使用正则表达式校验、匹配字符工具类

    开发程序离不开数据的校验,这里整理了一些数据的校验.匹配的方法: /// <summary> /// 字符(串)验证.匹配工具类 /// </summary> public c ...

  9. WebUtils-网络请求工具类

    网络请求工具类,大幅代码借鉴aplipay. using System; using System.Collections.Generic; using System.IO; using System ...

随机推荐

  1. poj1664放苹果(递归)

    题目链接:http://poj.org/problem?id=1664 放苹果 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: ...

  2. Anaconda换源小记

    如果还没有安装可以参考:https://www.cnblogs.com/dotnetcrazy/p/9158715.html 一键更新所有库:conda update --all 清华的源有时候有点小 ...

  3. jenkins自动打包部署项目

    首先去jenkins的官网下载安装包 https://jenkins.io/   个人下载是长期稳定的那个版本,下载后,得到一个.msi的安装包: 点击进行安装,然后一直点击下一步. jenkins会 ...

  4. Building Microservices with Spring Boot and Apache Thrift. Part 2. Swifty services

    http://bsideup.blogspot.com/2015/04/spring-boot-thrift-part2.html     In previous article I showed y ...

  5. python面向对象编程 -- 基本概念

    面向对象的编程简要概括就是将要处理的问题抽象为数据和操作的集合,用类对其进行封装.其中数据和操作都称为类的属性,它们是一般是不变的. 对类进行实例化生成我们所说的对象,对象有自己的属性.对象的属性一般 ...

  6. 64位win8.1系统 运行 32位程序,文件夹路径是中文遇到问题

    今天有一位用户向我反应软件使用遇到问题. 用户使用的是64位win8.1系统,之前有很多用户使用64位的win8.1系统没遇到过问题. 远程协助了一下,差不多15分钟我试了几个办法没解决问题. 最后我 ...

  7. MySQL 之 库操作,表操作

    系统数据库 information_schema :虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等 mysql:核心数据库,里面包含用户.权限.关键 ...

  8. Day035--Python--管道, Manager, 进程池, 线程切换

    管道 #创建管道的类: Pipe([duplex]):在进程之间创建一条管道,并返回元组(conn1,conn2),其中conn1,conn2表示管道两端的连接对象,强调一点:必须在产生Process ...

  9. 5款 Mac 常用PDF阅读和编辑软件推荐

    PDF和Word.TXT等文档一样,都是我们最常用的文档格式,那么一款好用的浏览或编辑PDF的工具就很有必要了,今天和大家分享5款Mac上优秀的PDF阅读和编辑工具. 以下内容来自[风云社区 SCOE ...

  10. POJ1821 单调队列//ST表 优化dp

    http://poj.org/problem?id=1821 当我们在考虑内层循环j以及决策k的时候,我们可以把外层变量i看作定值,以此来优化dp状态转移方程. 题意 有n个工人准备铺m个连续的墙,每 ...