如何使用SharpSSH库在SFTP上获取远程文件的Stream对象?

时间:2010-03-13 11:23:28

标签: c# .net sftp sharpssh

如何获取Stream对象以读取SFTP共享上的文件? 我看到有使用Sftp类从SFTP下载文件的功能,但我需要一个Stream对象才能显示下载进度。

2 个答案:

答案 0 :(得分:0)

我不熟悉SharpSSH,但edtFTPnet/PRO是支持SFTP和FTPS的商业.NET库,它使用您可以订阅的BytesTransferred事件。

因此,您会定期收到下载或上传的内容的通知,如果您在转移前获取了大小,则可以轻松计算下载进度。

我认为SharpSSH有类似的事件你可以订阅。

答案 1 :(得分:0)

尝试下载SSH.NET Library from CodePlex

此库有一个下载文件的方法

public void DownloadFile(string path, Stream output);

但我使用System.Net.WebClient.DownloadData方法获取sftp服务器中的文件,此方法返回一个byteArray,可以轻松转换为Stream。

WebClient client = new WebClient();
byte[] file = client.DownloadData(url);
Stream stream = new MemoryStream(file); 

希望这有帮助。