Você pode recomendar uma biblioteca FTP gratuita (classe) para C #.
A aula tem que ser bem escrita e ter bom desempenho.
Você pode recomendar uma biblioteca FTP gratuita (classe) para C #.
A aula tem que ser bem escrita e ter bom desempenho.
Respostas:
Você pode considerar o FluentFTP , anteriormente conhecido como System.Net.FtpClient .
É lançado sob a licença MIT e disponível no NuGet (FluentFTP).
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:
Não recomendamos que você use a classe FtpWebRequest para novos desenvolvimentos. Para obter mais informações e alternativas para FtpWebRequest, consulte WebRequest não deve ser usado no GitHub. ( https://docs.microsoft.com/en-us/dotnet/api/system.net.ftpwebrequest?view=netframework-4.7.2 )
A página 'WebRequest não deve ser usada', por sua vez, aponta para esta questão como a lista definitiva de bibliotecas!
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 #.
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.
Você pode usar os do CodePlex ou http://www.enterprisedt.com/general/press/20060818.html
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.
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:
public IEnumerable<FtpFileInfo> GetFiles(string server, string user, string password)
{
var credentials = new NetworkCredential(user, password);
var baseUri = new Uri("ftp://" + server + "/");
var files = new List<FtpFileInfo>();
AddFilesFromSubdirectory(files, baseUri, credentials);
return files;
}
private void AddFilesFromSubdirectory(List<FtpFileInfo> files, Uri uri, NetworkCredential credentials)
{
var client = new FtpClient(credentials);
var lookedUpFiles = client.GetFiles(uri);
files.AddRange(lookedUpFiles);
foreach (var subDirectory in client.GetDirectories(uri))
{
AddFilesFromSubdirectory(files, subDirectory.Uri, credentials);
}
}
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