题
我正在考虑使用以下代码,但是我想传输数百个文件,并且它看起来不可行,然后在每个文件传输上断开连接。
request = (FtpWebRequest) FtpWebRequest.Create(FtpAddress + file);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(User, Pass);
request.UsePassive = IsPassive;
request.UseBinary = true;
request.KeepAlive = false;
FileStream fs = File.OpenRead("");
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
Stream ftpStream = request.GetRequestStream();
ftpStream.Write(buffer, 0, buffer.Length);
ftpStream.Close();
我有什么选项使用单个连接上传所有这些文件?
解决方案
我尚未确认这是真的,但是在我的快速搜索中,如果您设置了
request.KeepAlive = true;
在您创建的每个请求上,除了最后一个请求,显然只有第一个ftpwebrequest才能完整登录连接。
然后,当您创建最后一个ftpwebrequest时,设置
request.KeepAlive = false;
它将在完成后关闭连接。如果您可以访问FTP服务器的日志,则可以验证这一点。
不隶属于 StackOverflow