68 votes

Comment puis-je télécharger un fichier vers un serveur SFTP en C# / .NET?

Cette capacité de venir avec .Net? Si non, quelle est la meilleure bibliothèque libre? J'ai besoin de quelque chose qui va jeter des exceptions quand il y a un problème, et me permet de suivre sa progression.

39voto

Kasprzol Points 2954

Peut-être que vous pouvez créer un script de contrôle/ winscp?

21voto

Ryan Lanciaux Points 4835

Vous pouvez prendre un coup d'oeil un SharpSSH. Il prend en charge le protocole SFTP hors de la boîte et il est OpenSource.

8voto

Martin Vobr Points 3443

De code suivant montre comment télécharger un fichier vers un serveur SFTP en utilisant notre Rebex SFTP composant.

// create client, connect and log in 
Sftp client = new Sftp();
client.Connect(hostname);
client.Login(username, password);

// upload the 'test.zip' file to the current directory at the server 
client.PutFile(@"c:\data\test.zip", "test.zip");

client.Disconnect();

Vous pouvez vous écrivez un journal de communication d'un fichier à l'aide d'une écriture de journal de propriété comme suit. Des exemples de sortie (à partir de composant FTP mais le SFTP sortie est similaire) peut être trouvé ici.

client.LogWriter = new Rebex.FileLogWriter(
   @"c:\temp\log.txt", Rebex.LogLevel.Debug); 

ou l'interception de la communication à l'aide des événements comme suit:

Sftp client = new Sftp();
client.CommandSent += new SftpCommandSentEventHandler(client_CommandSent);
client.ResponseRead += new SftpResponseReadEventHandler(client_ResponseRead);
client.Connect("sftp.example.org");

//... 
private void client_CommandSent(object sender, SftpCommandSentEventArgs e)
{
    Console.WriteLine("Command: {0}", e.Command);
}

private void client_ResponseRead(object sender, SftpResponseReadEventArgs e)
{
    Console.WriteLine("Response: {0}", e.Response);
}

Pour plus d'infos, voir le tutoriel ou télécharger un essai et vérifier les échantillons.

2voto

ddc0660 Points 2221

Il n'y a pas de solution pour ce dans la .net framework.

http://www.eldos.com/sbb/sftpcompare.php présente une liste de l'onu des options sans.

votre meilleur pari est d'étendre SSH à l'aide de Granados. http://www.routrek.co.jp/en/product/varaterm/granados.html

0voto

Mike L Points 2028

Malheureusement, il n'est pas dans l' .NET Framework lui-même. Mon souhait est que vous pouvez intégrer avec FileZilla, mais je ne pense pas qu'il expose une interface. Ils n'ont de script je pense, mais il ne sera pas aussi propre évidemment.

J'ai utilisé CuteFTP dans un projet qui ne SFTP. Il expose un composant COM qui j'ai créé un .NET wrapper autour de. La capture, vous trouverez, des autorisations. Il fonctionne parfaitement sous les informations d'identification Windows qui est installé CuteFTP, mais sous d'autres informations d'identification nécessite des autorisations à définir dans les DCOM.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X