博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c#连接SFTP上传文件
阅读量:6028 次
发布时间:2019-06-20

本文共 1413 字,大约阅读时间需要 4 分钟。

名词解释(百度百科)

是Secure File Transfer Protocol的缩写,安全。可以为传输文件提供一种安全的加密方法。 与 ftp 有着几乎一样的语法和功能。SFTP 为 的一部份,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全子系统,SFTP本身没有单独的,它必须使用sshd守护进程(号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/,所以比普通的要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。

代码实现:

1.添加引用 Renci.SshNet(通过Nuget下载)

https://www.nuget.org/packages/SSH.NET/2013.4.7

2.核心代码

const int port = 22; //端口

const string host = " "; //sftp地址
const string username = " "; //用户名
const string password = " ";//密码
const string workingdirectory = "/";//读取、上传文件的目录 "/"为根目录
const string uploadfile = @"c:\1.xml"; //上传文件地址

 

using (var client = new SftpClient(host, port, username, password)) //创建连接对象
{
client.Connect(); //连接
 

client.ChangeDirectory(workingdirectory); //切换目录

 

var listDirectory = client.ListDirectory(workingdirectory); //获取目录下所有文件

 
foreach (var fi in listDirectory) //遍历文件
{
Console.WriteLine(" - " + fi.Name);
// client.DeleteFile(fi.FullName);//删除文件
}

using (var fileStream = new FileStream(uploadfile, FileMode.Open))

{
client.BufferSize = 4 * 1024; // bypass Payload error large
client.UploadFile(fileStream, Path.GetFileName(uploadfile)); //上传文件
//UploadFile方法没有返回值,无法判断文件是否上传成功,我想到的解决办法是,上传后再获取一下文件列表,如果文件列表count比上传之前大,说明上传成功。当然
//这样的前提是只有你一个人上传。不知各位大神有没有其它办法
}
Console.ReadKey();

 

 

 

转载于:https://www.cnblogs.com/jrsnd/p/3813387.html

你可能感兴趣的文章
JAVA多线程深度解析
查看>>
Kafka High Level Consumer 会丢失消息
查看>>
时间轴
查看>>
java 获取系统当前时间的方法
查看>>
Ubuntu 10.04升级git 到1.7.2或更高的可行方法
查看>>
Spring Security4实战与原理分析视频课程( 扩展+自定义)
查看>>
消息队列服务器 memcacheq的搭建
查看>>
VMware Horizon View 7.5 虚拟桌面实施咨询与购买--软件硬件解决方案
查看>>
RabbitMQ如何保证队列里的消息99.99%被消费?
查看>>
第一周博客作业
查看>>
thinkpython2
查看>>
String、StringBuffer和StringBuilder的区别
查看>>
oracle recyclebin与flashback drop
查看>>
svmlight使用说明
查看>>
Swing 和AWT之间的关系
查看>>
Mysql设置自增长主键的初始值
查看>>
Android计时器正确应用方式解析
查看>>
获取post传输参数
查看>>
ASP生成静态页面的方法
查看>>
mysql 权限
查看>>