Как получить объект Stream для удаленного файла по SFTP с использованием библиотеки SharpSSH? - PullRequest
1 голос
/ 13 марта 2010

Как я могу получить объект Stream для чтения файла, который находится на общем ресурсе SFTP? Я вижу, что есть функция для загрузки файла из SFTP с использованием класса Sftp, но мне нужен объект Stream, чтобы можно было показать ход загрузки.

Ответы [ 2 ]

0 голосов
/ 16 октября 2012

Попробуйте загрузить SSH.NET Library из 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); 

Надеюсь, это поможет.

0 голосов
/ 15 марта 2010

Я не знаком с SharpSSH, но edtFTPnet / PRO , коммерческая библиотека .NET, поддерживающая SFTP и FTPS, использует событие BytesTransferred, на которое вы можете подписаться.

Таким образом, вы регулярно получаете уведомление о том, сколько было загружено или загружено, и, если вы захватите размер перед передачей, вы можете легко рассчитать ход загрузки.

Я предполагаю, что у SharpSSH есть похожее событие, на которое вы можете подписаться.

...