Fazendo download via SFTP em C# com SshNet

0

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

 

 

 

Compartilhe.

Sobre o autor

Criador do blog Código Simples e com mais 9 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist. Atuando em funções analista, desenvolvedor, arquiteto, líder técnico e gestor de equipes. Mais informações em : http://jhonathansoares.com