不多说,贴代码,看不懂得可以留言。需要引入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. select * from table where 1=1

    转自:http://www.dzwebs.net/2418.html 我们先来看看这个语句的结果:select * from table where 1=1,其中where 1=1,由于1=1永远是成 ...

  2. [转载+原创]Emgu CV on C# (三) —— Emgu CV on 均衡化

    本文简要描述了均衡化原理及数学实现等理论问题,最终利用emgucv实现图像的灰度均衡. 直方图的均衡化,这是图像增强的常用方法. 一.均衡化原理及数学实现(转载) 均衡化原理及数学实现可重点参看——& ...

  3. 在云服务器搭建WordPress博客(二)使用xampp并解决端口冲突问题

    要搭建一台外界可以访问的服务器,就必须有对应的服务器环境.在这里我用的xampp集成环境(我是菜鸟级......),xampp集成了PHP+Apache+MySQL+perl,安装方便,不用再特意去设 ...

  4. C# File

    http://msdn.microsoft.com/zh-cn/library/system.io.file(v=vs.110).aspx using System; using System.IO; ...

  5. SpringJUnit4测试--测试无反应/控制台报空指针的解决---junit的jar冲突!

    前言: 前些日子碰到一个诡异的问题--用springJUnit进行测试,运行方法什么反应也没有,控制台 也没有输出,百度也没有答案--只好暂时作罢.今天我只好用上了排除法,建个测试小项目,将只要能测试 ...

  6. [转载]Winform开发框架之统计图表的实现

    在前面的一些随笔中,介绍了不少我的Winform框架的特性,上篇随笔<Winform开发框架之通用高级查询模块>对其中的通用高级模块进了一个整理说明,本篇继续介绍Winform开发框架重要 ...

  7. hdu 1757 A Simple Math Problem (矩阵快速幂,简单)

    题目 也是和LightOJ 1096 和LightOJ 1065 差不多的简单题目. #include<stdio.h> #include<string.h> #include ...

  8. 2014多校第一场D题 || HDU 4864 Task (贪心)

    题目链接 题意 : 用N台机器,M个任务,每台机器都有一个最大工作时间和等级,每个任务有一个需要工作时间和一个等级.如果机器完成一个任务要求是:机器的工作时间要大于等于任务的时间,机器的等级要大于等于 ...

  9. Meteor 简介

    简介 先来活动一下大脑.假设你坐在电脑面前,在两个窗口中打开同一个文件夹. 在其中一个窗口中删除一个文件,另一个窗口中的这个文件会消失吗? 不用实际操作你也知道肯定会消失的.在本地文件系统中的操作,不 ...

  10. swift学习笔记-UI篇之UIImageView

    1.基本使用 将要使用的图片拖入到项目里,我这里使用的是名为“1.jpg”的图片,然后创建UIImageView,并设置要显示的图片为"1.jpg"//1. 基本使用 let im ...