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

时间:2011-03-02 10:34:41

标签: c# sftp filezilla

我想将FileZilla与我用C#编写的应用程序集成。 请有人给我看示例代码或显示示例代码的网站。

虽然我在网上找到了文章,而那篇文章却在说 “应用程序与FileZilla集成的速度非常慢”。 但我不知道我是否可以忍受这么晚。 所以我想挑战。

4 个答案:

答案 0 :(得分:3)

要在C#中支持FTP / SFTP或任何其他协议,您可以通过以下三种方式进行:

<强> 1。新应用程序 - 启动一个在单独进程中执行FTP通信的应用程序,并能够控制要下载的文件,保存位置以及在下载完成时告诉应用程序终止。这样,只有在允许您在命令行中传递某些参数(例如要通过FTP / SFTP传输的资源的URI)以及应将文件保存到的路径时,才能使用FileZilla。我可以看到HERE这可行。

要启动该过程并在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的args并让它完成它的工作......但你不知道下载文件需要多长时间,下载结束时,你需要记录吗?得到它......

<强> 2。现有的类库 - 包括由其他人编写的类库,可以完成这项工作。这样您就可以完全控制该过程。正如许多其他人所说,这对你来说是一个完美的方式。这里的许多答案包含您可以使用的良好类库,并对结果感到满意。

第3。自制的课堂图书馆 - 打开RFC 959,阅读全部并编写代码...... (现在2.听起来更好,不是吗?:D) < / p>

答案 1 :(得分:2)

Filezilla是一个GUI FTP客户端,您无法使用它来“编写”SFTP操作(它只接受一组非常有限的command line arguments)

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

答案 2 :(得分:0)

要从C#应用程序支持FTP或SFTP,您可以使用像Chilkat http://www.chilkatsoft.com/ftp-2-dotnet.asp那样的外部库。我用它,效果很好!

理论上,您也可以自己使用套接字连接实现FTP协议,但是您应该省去麻烦 - &gt;不要重新发明轮子......

答案 3 :(得分:0)

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