2010-03-13 23 views
1

Comment puis-je obtenir un objet Stream pour lire le fichier sur le partage SFTP? Je vois qu'il y a des fonctionnalités pour télécharger un fichier depuis SFTP en utilisant la classe Sftp, mais j'ai besoin d'un objet Stream pour pouvoir montrer la progression du téléchargement.Comment obtenir un objet Stream pour un fichier distant sur SFTP à l'aide de la bibliothèque SharpSSH?

+0

Question connexe - http://stackoverflow.com/questions/3295552/streaming-a-file-from-sharpssh – MattGWagner

Répondre

0

Je ne suis pas familier avec SharpSSH, mais edtFTPnet/PRO, qui est une bibliothèque commerciale .NET prenant en charge SFTP et FTPS, utilise un événement BytesTransferred auquel vous pouvez vous abonner.

Ainsi, vous recevez régulièrement des notifications sur les téléchargements ou les téléchargements, et si vous saisissez la taille avant de transférer, vous pouvez facilement calculer la progression du téléchargement.

Je suppose que SharpSSH a un événement similaire auquel vous pouvez vous abonner.

0

Essayez de télécharger SSH.NET Library from CodePlex

Cette bibliothèque a une méthode pour télécharger un fichier

public void DownloadFile(string path, Stream output); 

Mais j'utilise la méthode System.Net.WebClient.DownloadData pour obtenir un fichier dans le serveur sftp, cette méthode renvoie un byteArray, vous pouvez facilement convertir en flux.

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

Espérons que cela aide.