7

我想根据文件的日期时间从 ftp 服务器下载文件..我可以从 CuteFtp 第三方访问这个 Ftp 并且一切都很好..但是当我在行运行下面的代码时,GetRespone()我得到了这个错误:操作已计时出去。我使用 webclient requet 以编程方式从这个 FTP 下载了一个示例文件,它很好..但我需要使用FtpWebRequest来获取 listDirectoryDe​​tail 并且 webClient 不支持..还有一件事,请求中有一个异常:FtpWebRequest.ContentType抛出一个异常类型System.NotSupportedException

这是我的代码:

Uri uri = new Uri("ftp://192.168.1.5:2100/");//the private address
        if (uri.Scheme != Uri.UriSchemeFtp)
        {
            return;
        }
        FtpWebRequest reqFTP;
        reqFTP = (FtpWebRequest)WebRequest.Create(uri);                             
        reqFTP.Credentials = new NetworkCredential("myuser", "mypass");
        reqFTP.KeepAlive = false;
        reqFTP.Method = WebRequestMethods.Ftp.ListDirectoryDetails;                               
        reqFTP.UseBinary = true;
        reqFTP.Proxy = null;
        reqFTP.UsePassive = false;
        FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();

请帮忙 :(

4

1 回答 1

15

我已经解决了我的问题!... UsePassive 属性应该设置为 True,当它为 true 时,客户端应该在数据端口上启动连接

reqFTP.UsePassive = true;
于 2013-07-17T04:13:27.537 回答