Biblioteca FTP livre [fechada]
pode recomendar uma biblioteca FTP(classe) gratuita para C#.
A classe tem de ser bem escrita, e ter um bom desempenho.
7 answers
Pode considerar FluentFTP , Anteriormente conhecido por System. Net. FtpClient.
É lançado sob A Licença MIT e disponível em NuGet (FluentFTP).
Porque não usa as bibliotecas que vêm com o framework. Net: http://msdn.microsoft.com/en-us/library/ms229718.aspx
São concebidos pela Microsoft e devem funcionar de forma bastante eficiente.
EdtFTPnet é uma biblioteca FTP livre, rápida e de código aberto para o. NET, escrita em C#.
Eu gosto de Alex FTPS Client que é escrito por um MVP da Microsoft chamado Alex Pilotti. É uma biblioteca C# que você pode usar em aplicativos de consoles, formulários Windows, PowerShell, ASP.NET (em qualquer língua.net). Se você tiver uma aplicação multithreaded você terá que configurar a biblioteca para executar sincronamente, mas no geral um bom cliente que provavelmente lhe dará o que você precisa.
Podes usar os do CodePlex ou http://www.enterprisedt.com/general/press/20060818.html
Acabei de publicar um artigo que apresenta tanto uma classe de cliente FTP como um controlo de utilizador 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 largar o controle do usuário em um formulário para permitir que os usuários naveguem em diretórios FTP de sua aplicação.
Por exemplo (tente fazer isto com a biblioteca padrão. net-será uma dor real) - > Recuando recursivamente todos os ficheiros 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);
}
}