【发布时间】:2016-08-09 15:54:08
【问题描述】:
在 C# (.NET 4.6) 中,我使用保持活动的 FTPS 连接在这样的循环中下载几个文件:
foreach (string filename in filenames)
{
string requestUriString = GetFtpUriString(myDir) + "/" + filename;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(requestUriString);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(myFtpsUsername, myFtpsPassword);
request.EnableSsl = true;
request.ConnectionGroupName = myConnectionGroupName;
request.KeepAlive = true;
... do something ...
}
循环完成后,我想关闭连接。我找不到直接的方法来实现这一点。我想出的是以下解决方法,它向 FTP 服务器发出另一个低占用空间请求,这次将 KeepAlive 标志设置为 false:
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(GetFtpUriString(myDir));
request.Method = WebRequestMethods.Ftp.PrintWorkingDirectory;
request.Credentials = new NetworkCredential(myFtpsUsername, myFtpsPassword);
request.EnableSsl = true;
request.ConnectionGroupName = myConnectionGroupName;
request.KeepAlive = false;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();
我现在想知道是否存在另一种更简单、更优雅和直接的方法来关闭特定连接组的打开的 FTP 连接。
【问题讨论】:
-
你解决了吗?
标签: c# ftp keep-alive ftps .net-4.6