Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#[sftp]中编程与filezilla集成_C#_Sftp_Filezilla - Fatal编程技术网

如何在C#[sftp]中编程与filezilla集成

如何在C#[sftp]中编程与filezilla集成,c#,sftp,filezilla,C#,Sftp,Filezilla,我想将FileZilla与用C#编写的应用程序集成。 请有人告诉我样本代码或网站显示样本代码 虽然我在网上找到了一篇文章,那篇文章说 “应用程序与FileZilla集成太慢了”。 但我不知道我是否能忍受那么晚。 所以我想挑战一下。要从您的C#应用程序支持FTP或SFTP,您可以使用类似Chilkat的外部库。我使用它,它的作品伟大 理论上,您也可以自己使用套接字连接实现FTP协议,但您应该避免麻烦->不要重新发明轮子…Filezilla是一个GUI FTP客户端,您不能使用它来“编写”SFTP操

我想将FileZilla与用C#编写的应用程序集成。 请有人告诉我样本代码或网站显示样本代码

虽然我在网上找到了一篇文章,那篇文章说 “应用程序与FileZilla集成太慢了”。 但我不知道我是否能忍受那么晚。
所以我想挑战一下。

要从您的C#应用程序支持FTP或SFTP,您可以使用类似Chilkat的外部库。我使用它,它的作品伟大


理论上,您也可以自己使用套接字连接实现FTP协议,但您应该避免麻烦->不要重新发明轮子…

Filezilla是一个GUI FTP客户端,您不能使用它来“编写”SFTP操作(它只接受非常有限的一组数据)


您必须寻找第三方C#组件或自己编写一个(不推荐)来完成这项工作。

如果您需要在应用程序中通过SSH/SFTP发送文件,我建议使用。

要支持FTP/SFTP或C#中的任何其他协议,您可以通过三种方式完成:

1.新建应用程序进程-启动一个应用程序,该应用程序在单独的进程中进行FTP通信,并且能够控制下载什么文件、保存到哪里,并在下载完成后通知应用程序终止。这样,只有当FileZilla允许您在命令行中传递某些参数时,才能使用FileZilla,如资源库的URIce您希望通过FTP/SFTP传输,以及文件应保存到的路径。正如我所见,这可以工作

要启动进程并在C#中传递命令行参数,可以执行以下操作:

static void StartNewProcess(string app, string args)
{
    ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.FileName = app;   //full app path
    startInfo.Arguments = args; //command line arguments
    startInfo.CreateNoWindow = true; //dont create app window
    startInfo.WindowStyle = ProcessWindowStyle.Hidden; //hide app from taskbar
    Process.Start(startInfo);
}
现在你可以执行FileZila应用程序,将包含文件URL的参数传递给它并让它完成它的工作…但是你不知道下载文件需要多长时间,下载结束后,你需要登录才能获得它吗

2.现有类库-包括一个由其他人编写的类库,用于完成此任务。这样,您可以完全控制流程。正如许多其他建议所述,这对您来说是一个完美的方法。这里的许多答案都包含了您可以使用并对结果感到满意的好类库


3.自制类库-打开,阅读所有内容并编写代码…(现在2.听起来更好,不是吗?:D)

您想用filezilla做什么?RFC 959仅适用于FTP.SFTP(通过SSH运行的远程文件访问协议)是另一回事,需要实现SSH和SFTP,这是一项非常重要的任务。谢谢你的回复。你的回复是我真正想要的答案。我会试试。:)我会把我的总体想法告诉老板。欢迎你。那就把我的答案标为被接受然后投票吧?!xDTamir SSH不是一个完美的解决方案,客户机命令行参数正是我想要的。谢谢(不确定OP想要什么-我只是想要一个快捷方式,从我的程序启动Filezilla set到特定站点。)