Você pode recomendar uma biblioteca FTP gratuita (classe) para C #.
A aula tem que ser bem escrita e ter bom desempenho.
Você pode considerar o FluentFTP , anteriormente conhecido como System.Net.FtpClient .
É lançado sob a licença MIT e disponível no NuGet (FluentFTP).
FtpListItem[] items = ftp.GetListing();//here you can get list with type, name, modified date and other properties. FtpFile file = new FtpFile(ftp, "8051812.xml");//file to get file.Download("c:\\8051812.xml");//download file.Name = "8051814.xml";//change name to get new file.Download("c:\\8051814.xml"); ftp.Disconnect();//close
Por que você não usa as bibliotecas que vêm com o .NET framework: http://msdn.microsoft.com/en-us/library/ms229718.aspx ?
EDITAR: abril de 2019 por https://stackoverflow.com/users/1527/ Esta resposta não é mais válida. Outras respostas são endossadas pela Microsoft.
Eles foram desenvolvidos pela Microsoft, que não recomenda mais que sejam usados:
A página 'WebRequest não deve ser usada', por sua vez, aponta para esta questão como a lista definitiva de bibliotecas!
fonte
FtpWebRequest
classe só funciona realmente para ações simples e transacionais de FTP que podem ser modeladas no padrão Solicitação / Resposta, como fazer download ou upload de arquivos individuais. É muito difícil usá-lo para realizar tarefas como criar uma estrutura de pasta FTP ou fazer upload e download na mesma sessão.edtFTPnet é uma biblioteca FTP gratuita, rápida e de código aberto para .NET, escrita em C #.
fonte
Eu gosto do Alex FTPS Client, que é escrito por um MVP da Microsoft chamado Alex Pilotti. É uma biblioteca C # que você pode usar em aplicativos de console, Windows Forms, PowerShell, ASP.NET (em qualquer linguagem .NET). Se você tiver um aplicativo multithread, terá que configurar a biblioteca para funcionar de forma síncrona, mas no geral é um bom cliente que provavelmente fornecerá o que você precisa.
fonte
Você pode usar os do CodePlex ou http://www.enterprisedt.com/general/press/20060818.html
fonte
Acabei de postar um artigo que apresenta uma classe de cliente FTP e um controle de usuário FTP.
Eles são simples e não são muito rápidos, mas são muito fáceis de usar e todo o código-fonte está incluído. Basta soltar o controle do usuário em um formulário para permitir que os usuários naveguem nos diretórios FTP de seu aplicativo.
fonte
Depois de muita investigação sobre o mesmo problema, achei este extremamente conveniente: https://github.com/flagbug/FlagFtp
Por exemplo (tente fazer isso com a "biblioteca" .net padrão - será uma dor real) -> Recuperando recursivamente todos os arquivos no servidor FTP:
fonte