¿Puede recomendar una biblioteca FTP gratuita (clase) para C #?
La clase debe estar bien redactada y tener un buen desempeño.
¿Puede recomendar una biblioteca FTP gratuita (clase) para C #?
La clase debe estar bien redactada y tener un buen desempeño.
Respuestas:
Puede considerar FluentFTP , anteriormente conocido como System.Net.FtpClient .
Se publica bajo la licencia MIT y está disponible en NuGet (FluentFTP).
¿Por qué no utiliza las bibliotecas que vienen con .NET framework? Http://msdn.microsoft.com/en-us/library/ms229718.aspx ?
EDITAR: abril de 2019 por https://stackoverflow.com/users/1527/ Esta respuesta ya no es válida. Microsoft respalda otras respuestas.
Fueron diseñados por Microsoft, que ya no recomienda que se utilicen:
No recomendamos que utilice la clase FtpWebRequest para nuevos desarrollos. Para obtener más información y alternativas a FtpWebRequest, consulte WebRequest no debe usarse en GitHub. ( https://docs.microsoft.com/en-us/dotnet/api/system.net.ftpwebrequest?view=netframework-4.7.2 )
¡La página 'WebRequest no debería usarse' a su vez apunta a esta pregunta como la lista definitiva de bibliotecas!
FtpWebRequest
clase solo funciona realmente para acciones FTP transaccionales simples que se pueden modelar en el patrón de solicitud / respuesta, como descargar o cargar archivos individuales. Es muy difícil usarlo para realizar tareas como crear una estructura de carpetas FTP o cargar y descargar en la misma sesión.
edtFTPnet es una biblioteca FTP de código abierto, rápida y gratuita para .NET, escrita en C #.
Me gusta Alex FTPS Client, que está escrito por un MVP de Microsoft llamado Alex Pilotti. Es una biblioteca de C # que puede usar en aplicaciones de consola, Windows Forms, PowerShell, ASP.NET (en cualquier lenguaje .NET). Si tiene una aplicación multiproceso, tendrá que configurar la biblioteca para que se ejecute de forma sincrónica, pero en general, es un buen cliente que probablemente obtendrá lo que necesita.
Puede usar los de CodePlex o http://www.enterprisedt.com/general/press/20060818.html
Acabo de publicar un articulo que presenta tanto una clase de cliente FTP como un control de usuario FTP.
Son simples y no muy rápidos, pero son muy fáciles de usar y todo el código fuente está incluido. Simplemente coloque el control de usuario en un formulario para permitir que los usuarios naveguen por directorios FTP desde su aplicación.
Después de mucha investigación sobre el mismo problema, encontré que este era extremadamente conveniente: https://github.com/flagbug/FlagFtp
Por ejemplo (intente hacer esto con la "biblioteca" estándar .net - será un verdadero dolor de cabeza) -> Recuperar de forma recurrente todos los archivos en el 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