【问题标题】:How to get a Stream object for a remote file on SFTP using SharpSSH library?如何使用 SharpSSH 库在 SFTP 上获取远程文件的 Stream 对象?
【发布时间】:2010-03-13 11:23:27
【问题描述】:

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

【问题讨论】:

标签: c# .net sftp sharpssh


【解决方案1】:

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

因此,您会定期收到有关已下载或上传多少的通知,如果您在传输前获取大小,则可以轻松计算下载进度。

我假设 SharpSSH 有一个您可以订阅的类似活动。

【讨论】:

    【解决方案2】:

    尝试下载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); 
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-27
      • 1970-01-01
      相关资源
      最近更新 更多