如何在 C# 中从 FTPS 下载文件

How to download files from FTPS in C#

我们的 IT 部门为我提供了 FTPS 的凭据,我可以使用 FileZilla

访问它

但我还需要使用我正在处理的应用程序来访问 FTPS 以自动执行该过程。提供给我的信息是,

这是 FTP 超过 TLS/SSL

IP: xxx.xxx.xx.xx

端口: 990 <-- 暗示其隐式加密

用户名: username.ftp

密码:密码123

在阅读了一些关于 WinSCP on stack 的帖子及其文档后,我仍然无法使用我的应用程序访问 ftps。到目前为止我的代码..

        SessionOptions sessionOp = new SessionOptions()
        {
            FtpSecure = FtpSecure.Implicit,
            Protocol = Protocol.Ftp,
            HostName = IP,              
            UserName = userName,
            Password = password,
        };

        sessionOp.AddRawSettings("ProxyMethod", "3");
        sessionOp.AddRawSettings("ProxyPort", "990");

        using (Session session = new Session())
        {
            session.Open(sessionOp);
            var list = session.ListDirectory(dir);
            Console.WriteLine(list);
        }

我得到的错误是,"Failed to Connect" 来自 WinSCP

如何访问此 FTPS?

您所做的是将 HTTP 代理端口配置为 990。您应该配置 FTPS 端口。

SessionOptions sessionOp = new SessionOptions()
{
    FtpSecure = FtpSecure.Implicit,
    Protocol = Protocol.Ftp,
    HostName = IP,              
    UserName = userName,
    Password = password,
    PortNumber = 990
};

并删除行

sessionOp.AddRawSettings("ProxyMethod", "3");
sessionOp.AddRawSettings("ProxyPort", "990");

此外,考虑到该库与 GUI 相关,我建议使用 the WinSCP GUI 来尝试这个而不是 FileZilla。