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
