Olá pessoal!
Recentemente me deparei com um problema no trabalho no qual eu precisava fazer download de arquivos via SFTP.
Vamos a uma pequena definição: “Na computação, o SSH File Transfer Protocol ou SFTP é um protocolo de transferência de arquivos e de manipulação funcional. É tipicamente utilizado com o protocolo de segurança SSH-2.”
Com isto eu criei inicialmente um projetinho de teste via console mesmo só para testar a aplicação e testar o download do arquivo.
Vou mostrar o código para vocês:
public static void Download() { using (SftpClient sftp = new SftpClient("coloque seu host", "coloque o usuario", "coloque a senha")) { sftp.Connect(); sftp.ChangeDirectory("//"); // subdiretorio do ftp string downloadedFileName = ""; string localPath = "D:\\"; //local para salvar o arquivo var listDirectory = sftp.ListDirectory("//"); // subdiretorio do ftp Console.WriteLine("Listando diretório:"); Console.WriteLine(""); foreach (var fi in listDirectory) { if (fi.Name.Length > 2) { Console.WriteLine(" > " + fi.Name); } } Console.WriteLine(""); Console.WriteLine("Digite o nome do arquivo a fazer download:"); downloadedFileName = Console.ReadLine(); if (sftp.Exists(downloadedFileName)) { using (var file = File.OpenWrite(localPath + downloadedFileName)) { sftp.DownloadFile(downloadedFileName, file); Console.WriteLine("Arquivo feito download com sucesso!"); Console.ReadKey(); } } else { Console.WriteLine("Arquivo não encontrado:"); } sftp.Disconnect(); } }
A implementação ficou bastante simples porém dá pra você entender perfeitamente como funciona.
Vale lembrar que você tem que fazer o download da biblioteca do SshNET > faça o download aqui
Bom pessoal, até a próxima!
Siga-nos no Facebook : https://www.facebook.com/CodigoSimples