net - subir archivos ftp c#
¿Cómo cargo un archivo a un servidor SFTP en C#/.NET? (6)
¿Esta capacidad viene con .Net? Si no, ¿cuál es la mejor biblioteca gratuita? Necesito algo que arroje buenas excepciones cuando hay un problema, y me permite controlar su progreso.
¿Tal vez puedas script / control de winscp ?
Actualización: winscp ahora tiene una biblioteca .NET disponible como un paquete nuget que admite SFTP, SCP y FTPS
El siguiente código muestra cómo cargar un archivo a un servidor SFTP utilizando nuestro componente Rebex SFTP .
// create client, connect and log in
Sftp client = new Sftp();
client.Connect(hostname);
client.Login(username, password);
// upload the ''test.zip'' file to the current directory at the server
client.PutFile(@"c:/data/test.zip", "test.zip");
client.Disconnect();
Puede escribir un registro de comunicación completo en un archivo usando una propiedad LogWriter de la siguiente manera. La salida de ejemplos (del componente FTP pero la salida SFTP es similar) se puede encontrar here .
client.LogWriter = new Rebex.FileLogWriter(
@"c:/temp/log.txt", Rebex.LogLevel.Debug);
o interceptar la comunicación usando eventos de la siguiente manera:
Sftp client = new Sftp();
client.CommandSent += new SftpCommandSentEventHandler(client_CommandSent);
client.ResponseRead += new SftpResponseReadEventHandler(client_ResponseRead);
client.Connect("sftp.example.org");
//...
private void client_CommandSent(object sender, SftpCommandSentEventArgs e)
{
Console.WriteLine("Command: {0}", e.Command);
}
private void client_ResponseRead(object sender, SftpResponseReadEventArgs e)
{
Console.WriteLine("Response: {0}", e.Response);
}
Para obtener más información, consulte el tutorial o download una versión de prueba y consulte las samples .
Lamentablemente, no está en .NET Framework en sí. Mi deseo es que puedas integrarte con FileZilla, pero no creo que exponga una interfaz. Creo que tienen scripting, pero obviamente no será tan limpio.
He usado CuteFTP en un proyecto que hace SFTP. Expone un componente COM que creé un contenedor .NET. El truco, encontrarás, son los permisos. Se ejecuta maravillosamente con las credenciales de Windows que instaló CuteFTP, pero se ejecuta bajo otras credenciales y requiere permisos para establecerse en DCOM.
No hay solución para esto dentro del marco .net.
http://www.eldos.com/sbb/sftpcompare.php describe una lista de opciones no libres.
su mejor apuesta gratis es extender SSH usando Granados. http://www.routrek.co.jp/en/product/varaterm/granados.html
Para otra opción no libre, pruebe edtFTPnet/PRO . Tiene soporte completo para SFTP, y también admite FTPS (y, por supuesto, FTP) si es necesario.
Editar: esta respuesta es de hace mucho tiempo y ya no es válida. Ver comentarios
Es posible que desee echar un vistazo a SharpSSH . Es compatible con SFTP fuera de la caja y es OpenSource.