不多说,贴代码,看不懂得可以留言。需要引入WinSCP

 public class WebWinScp
{
//远程上传路径
private SessionOptions sessionOptions = null;
private WinSCP.Session session = new WinSCP.Session();
/// <summary>
///
/// </summary>
/// <param name="HostName">FTP服务器</param>
/// <param name="UserName">账号</param>
/// <param name="Password">密码</param>
/// <param name="SshPrivateKeyPath">Ssh私有密钥路径(以PPK结尾的文件)</param>
public WebWinScp(string HostName, string UserName, string Password, string SshPrivateKeyPath)
{
sessionOptions = new SessionOptions
{
Protocol = Protocol.Sftp,
HostName = HostName,
UserName = UserName,
Password = Password,
SshPrivateKeyPath = SshPrivateKeyPath,
GiveUpSecurityAndAcceptAnySshHostKey = true
};
}
/// <summary>
/// 下载FTP上的所有文件,并移除FTP上下载的问题
/// </summary>
/// <param name="localPath">本地下载路径</param>
/// <param name="remoteDoPath">远程下载路径</param>
public void Download(string localPath, string remoteDoPath)
{
try
{
//开启连接
session.Open(sessionOptions);
TransferOptions transferOptions = new TransferOptions();
//传输模式 二进制
transferOptions.TransferMode = TransferMode.Binary;
//FTP上的目录列表
RemoteDirectoryInfo directoryInfo = session.ListDirectory(remoteDoPath);
RemoteFileInfoCollection ct = directoryInfo.Files;
TransferOperationResult transferResult;
foreach (RemoteFileInfo item in ct)
{
transferResult = session.GetFiles(remoteDoPath + item.Name, localPath, true, transferOptions);
if (transferResult != null)
{
transferResult.Check();
}
}
}
catch (Exception)
{
throw;
}
finally
{
if (session.Opened)
{
session.Close();
}
}
}
/// <summary>
/// 上传本地文件到FTP上,上传成功删除本机文件
/// </summary>
/// <param name="localPath">本地上传路径</param>
/// <param name="remoteUpPath">远程上传路径</param>
public void Upload(string localPath, string remoteUpPath)
{
try
{
//开启连接
session.Open(sessionOptions);
TransferOptions transferOptions = new TransferOptions();
//传输模式 二进制
transferOptions.TransferMode = TransferMode.Binary;
TransferOperationResult transferResult = null;
transferResult = session.PutFiles(localPath, remoteUpPath, true, transferOptions);
if (transferResult != null)
{
transferResult.Check();
}
}
catch (Exception)
{
throw;
}
finally
{
if (session.Opened)
{
session.Close();
}
}
}
}

WinScp上传和下载的更多相关文章

  1. Winscp远程连接Linux主机,上传和下载文件

    1.安装Winscp.这里不再赘述,网上搜索下载安装就可以 2.点击桌面Winscp快捷键,打开Winscp 3.在打开的页面上填写远程主机的IP,用户名和密码,点击保存,会在页面的左边出现一个站点, ...

  2. Linux - 通过SecureCRT的rz、sz和sftp实现文件的上传和下载

    目录 1 通过rz/sz命令上传/下载 1.1 安装lrzsz软件 1.2 rz - 上传文件 1.3 sz - 下载文件 2 通过sftp上传/下载文件 2.1 关于SFTP的简介 2.2 SFTP ...

  3. Linux—文件上传和下载

    一.通过SecureCRT的rz.sz实现文件的上传和下载 1.检查是否安装sz  rz,命令如下 [root@localhost ~]# rpm -qa | grep rz # 上传 [root@l ...

  4. Xshell在Windows和Linux间文件的上传和下载

    本文通过lrzsz来实现Windows和Linux间文件间的文件传输. lrzsz使用 XMODEM.YMODEM 和 ZMODEM 文件传输协议来实现文件的上传和下载.相比 FTP 或者 WinSC ...

  5. win7下利用ftp实现华为路由器的上传和下载

    win7下利用ftp实现华为路由器的上传和下载 1.  Win7下ftp的安装和配置 (1)开始->控制面板->程序->程序和功能->打开或关闭Windows功能 (2)在Wi ...

  6. Java实现FTP文件与文件夹的上传和下载

    Java实现FTP文件与文件夹的上传和下载 FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制 ...

  7. java web学习总结(二十四) -------------------Servlet文件上传和下载的实现

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  8. Struts2入门(七)——Struts2的文件上传和下载

    一.前言 在之前的随笔之中,我们已经了解Java通过上传组件来实现上传和下载,这次我们来了解Struts2的上传和下载. 注意:文件上传时,我们需要将表单提交方式设置为"POST" ...

  9. php实现文件上传与下载(上)

    php实现文件的上传与下载是一个挺基本的功能,一般网站多多少少都会有这样的需求在内,当然不是说所有的文件都可以被上传,那这网络就太没有安全性可言了.因为接触php时间不长,今天写练练手,随笔也就是公开 ...

随机推荐

  1. UIDynamic仿物理引擎-浮动碰撞效果-b

    最近产品提了个需求(电商的APP-两鲜),需要在APP背景加上几个水果图案在那里无规则缓慢游荡...模仿 天天果园 APP的.好吧,那我就在网上找了很多文章,总结一下写个demo.效果如下: Mou ...

  2. SiteMesh3 介绍和使用

        Sitemesh是由一个基于Web页面布局.装饰及与现存Web应用整合的框架.它能帮助我们再由大量页面工程的项目中创建一致的页面布局和外观,如一 致的导航条.一致的banner.一致的版权等. ...

  3. Careercup - Facebook面试题 - 5344154741637120

    2014-05-02 10:40 题目链接 原题: Sink Zero in Binary Tree. Swap zero value of a node with non-zero value of ...

  4. android 开发 实现自动安装

    场景:实现自动安装apk程序 注意:不能使用 intent.setDataAndType(Uri.parse(apkPath),  "application/vnd.android.pack ...

  5. android 开发:讯飞的离线命令识别器官方demo使用及demo下载

    场景:使用本地构建语法,离线识别命令词. 修改文件AsrDemo.java mLocalGrammar  修改为你自己的语法 mAsr.setParameter(SpeechConstant.GRAM ...

  6. Openmeeting 网页打开缓慢,视频卡的一个解决方法

    在初次安装完openmeeting以后,从浏览器打开后发现网页缓慢,视频有卡顿的现象. 原因:为openmeeting分配的内存太小. 解决方法: 找到根目录的red5.bat,打开后查找“set J ...

  7. firefox常用扩展、脚本

    1.AutoPopup.uc.js:鼠标移到菜单和下拉箭头上自动弹出下拉菜单 2.moveButton.uc.js:移动或克隆按钮或菜单到火狐浏览器的任意位置 moveButton.uc.js使用说明 ...

  8. CSDN——【低调的草原狼】——Ext4.2学习目录整理

    最近在研究ExtJS,发现CSDN中有个博客中一系列文档非常优秀,但是没有对目录进行整理,在此稍作整理,也为以后自己研究打下一个基础: 原文作者:低调的草原狼 目录:     1.ExtJS4.2学习 ...

  9. CSS3属性box-shadow使用教程,css3box-shadow

    CSS3的box-shadow属性可以让我们轻松实现图层阴影效果.我们来实战详解一下这个属性. 1. box-shadow属性的浏览器兼容性先来看一个这个属性的浏览器兼容性: Opera: 不知道是从 ...

  10. C++ 操作法重载

    http://www.weixueyuan.net/view/6382.html http://wuyuans.com/2012/09/cpp-operator-overload/